{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 1 箱形图Boxplot\n",
    "Boxplot可能是最常见的图形类型之一。它能够很好表示数据中的分布规律。箱型图方框的末尾显示了上下四分位数。极线显示最高和最低值，不包括异常值。seaborn中用boxplot函数制作箱形图。该章节主要内容有：\n",
    "1. 基础箱形图绘制 Basic boxplot and input format\n",
    "2. 自定义外观 Custom boxplot appearance\n",
    "3. 箱型图的颜色设置 Control colors of boxplot\n",
    "4. 分组箱图 Grouped Boxplot\n",
    "5. 箱图的顺序设置 Control order of boxplot\n",
    "6. 添加散点分布 Add jitter over boxplot\n",
    "7. 显示各类的样本数 Show number of observation on boxplot\n",
    "8. 箱形图隐藏的数据处理 Hidden data under boxplot"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>sepal_length</th>\n",
       "      <th>sepal_width</th>\n",
       "      <th>petal_length</th>\n",
       "      <th>petal_width</th>\n",
       "      <th>species</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>5.1</td>\n",
       "      <td>3.5</td>\n",
       "      <td>1.4</td>\n",
       "      <td>0.2</td>\n",
       "      <td>setosa</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>4.9</td>\n",
       "      <td>3.0</td>\n",
       "      <td>1.4</td>\n",
       "      <td>0.2</td>\n",
       "      <td>setosa</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>4.7</td>\n",
       "      <td>3.2</td>\n",
       "      <td>1.3</td>\n",
       "      <td>0.2</td>\n",
       "      <td>setosa</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4.6</td>\n",
       "      <td>3.1</td>\n",
       "      <td>1.5</td>\n",
       "      <td>0.2</td>\n",
       "      <td>setosa</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5.0</td>\n",
       "      <td>3.6</td>\n",
       "      <td>1.4</td>\n",
       "      <td>0.2</td>\n",
       "      <td>setosa</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   sepal_length  sepal_width  petal_length  petal_width species\n",
       "0           5.1          3.5           1.4          0.2  setosa\n",
       "1           4.9          3.0           1.4          0.2  setosa\n",
       "2           4.7          3.2           1.3          0.2  setosa\n",
       "3           4.6          3.1           1.5          0.2  setosa\n",
       "4           5.0          3.6           1.4          0.2  setosa"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#调用seaborn\n",
    "import seaborn as sns\n",
    "#调用seaborn自带数据集\n",
    "df = sns.load_dataset('iris')\n",
    "#显示数据集\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1. 基础箱形图绘制 Basic boxplot and input format\n",
    "+ 一个数值变量 One numerical variable only\n",
    "+ 一个数值变量和多个分组 One numerical variable, and several groups\n",
    "+ 多个数值变量 Several numerical variable\n",
    "+ 水平箱型图 Horizontal boxplot with seaborn"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 一个数值变量 One numerical variable only\n",
    "# 如果您只有一个数字变量，则可以使用此代码获得仅包含一个组的箱线图。\n",
    "# Make boxplot for one group only\n",
    "# 显示花萼长度sepal_length\n",
    "sns.boxplot( y=df[\"sepal_length\"] );"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYYAAAEKCAYAAAAW8vJGAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAGthJREFUeJzt3XuUXWWZ5/HvLwmQhFskKW4pQsQCptEGhBJBXKwgl+4owswiI7i8BGwXRpBSaZ0ls2xB2hnHHlqlwkiMKITVNvaAolyCQuugOMqlQkLCPSUGKAhQCRIIKSQhz/yx3xrPPjlVOSepfXZO1e+z1lm1L+9+z3NqV51nv/vd+92KCMzMzAaNKzsAMzPbsTgxmJlZjhODmZnlODGYmVmOE4OZmeU4MZiZWY4Tg5mZ5TgxmJlZjhODmZnlTCg7gG0xbdq0mDlzZtlhmJm1lCVLlqyJiLatlSs8MUj6PPBJIIAVwLkR8XrF+l2A64CjgbXAWRGxarg6Z86cSU9PT2Exm5mNRpKeqqdcoaeSJE0HuoDOiHgHMB44u6rY3wF/iogO4FvAN4qMyczMhteMPoYJwCRJE4DJwHNV688AFqXpG4GTJKkJcZmZWQ2FJoaIeBa4HHgaWA2si4g7qopNB55J5TcB64CpRcZlZmZDK/pU0lvIWgRvBfYHdpX00epiNTbdYixwSedJ6pHU09/fP/LBmpkZUPyppJOBP0ZEf0RsBH4CvKeqTB9wAEA63bQn8FJ1RRGxMCI6I6KzrW2rnepmZraNik4MTwPHSpqc+g1OAh6tKnMzMDdNzwF+FX56kJlZaYruY7iXrEP5AbJLVccBCyVdJun0VOz7wFRJvcBFwJeKjMnMzIanVjw47+zsDN/HYDY2dXd309vbO+L19vX1AdDe3j7idXd0dNDV1TXi9TZK0pKI6NxauZa889nMbKQNDAyUHcIOw4nBzFpKUUfeg/V2d3cXUn8r8SB6ZmaW48RgZmY5TgxmZpbjxGBmZjlODGZmluPEYGZmOU4MZmaW48RgZmY5TgxmZpbjxGBmZjlODGZmluPEYGZmOU4MZmaW48RgZmY5TgxmZpbjxGBmZjlODGZmllNoYpB0qKRlFa9XJH2uqswsSesqynylyJjMzGx4hT7aMyIeB44EkDQeeBa4qUbRuyPitCJjMTOz+jTzVNJJwB8i4qkmvqeZmTWomYnhbOD6IdYdJ+lBSbdLenutApLOk9Qjqae/v7+4KM3MxrimJAZJOwOnAzfUWP0AcGBEHAHMB35aq46IWBgRnRHR2dbWVlywZmZjXLNaDLOBByLiheoVEfFKRKxP04uBnSRNa1JcZmZWpVmJ4cMMcRpJ0r6SlKaPSTGtbVJcZmZWpdCrkgAkTQZOAT5VsWweQEQsAOYAn5a0CRgAzo6IKDouMzOrrfDEEBEbgKlVyxZUTF8JXFl0HGZmVh/f+WxmZjlODGZmluPEYGZmOU4MZmaW48RgZmY5TgxmZpbjxGBmZjlODGZmluPEYGZmOU4MZmaW48RgZmY5TgxmZpbjxGBmZjlODGZmluPEYGZmOU4MZmaW48RgZmY5TgxmZpZTaGKQdKikZRWvVyR9rqqMJHVL6pW0XNJRRcZkZmbDK/SZzxHxOHAkgKTxwLPATVXFZgMHp9e7gavSTzMzK0EzTyWdBPwhIp6qWn4GcF1k7gGmSNqviXGZmVmFQlsMVc4Grq+xfDrwTMV8X1q2uhlB2djT3d1Nb29vIXX39fUB0N7ePuJ1d3R00NXVNeL1mlVrSotB0s7A6cANtVbXWBY16jhPUo+knv7+/pEO0WxEDAwMMDAwUHYYZtulWS2G2cADEfFCjXV9wAEV8+3Ac9WFImIhsBCgs7Nzi8RhVq8ij7oH6+7u7i7sPcyK1qw+hg9T+zQSwM3Ax9PVSccC6yLCp5HMzEpSeItB0mTgFOBTFcvmAUTEAmAx8H6gF9gAnFt0TGZmNrTCE0NEbACmVi1bUDEdwAVFx2FmzVNkB39RVq5cCRR7qrEIRVyU0MyrksxsjOjt7WXpw0thStmRNGBz9mPps0vLjaMRLxdTrRODmRVjCmyetbnsKEa1cXcV003ssZLMzCzHicHMzHKcGMzMLMeJwczMcpwYzMwsx4nBzMxynBjMzCzHicHMzHKcGMzMLMeJwczMcpwYzMwsx4nBzMxynBjMzCyn7tFVJR0CfBE4sHK7iHhfAXGZmVlJGhl2+wZgAfA94M1iwjEzs7I1khg2RcRVhUViZmY7hK32MUjaS9JewC2Szpe03+CytHxr20+RdKOkxyQ9Kum4qvWzJK2TtCy9vrIdn8fMzLZTPS2GJUAASvNfrFgXwEFb2f4K4OcRMUfSzsDkGmXujojT6ojFzMwKttXEEBFvBZA0MSJer1wnaeJw20raAzgBOCfV9QbwxrYGa2ZmxWukj+F3wFF1LKt0ENAPXCPpCLLWx2cj4rWqcsdJehB4DvhCRDzcQFxmtoPp6+uDdcU9k9iSl6Ev+ka82nr6GPaVdDQwSdI7JR2VXrOofVqo0gSyxHFVRLwTeA34UlWZB4ADI+IIYD7w0yHiOE9Sj6Se/v7+rYVtZmbbqJ4Ww9+QnQpqB75ZsfxV4L9uZds+oC8i7k3zN1KVGCLilYrpxZK+I2laRKypKrcQWAjQ2dkZdcRtZiVpb2+nX/1snrW57FBGtXF3jaN9evuI11tPH8MiYJGkMyPix41UHhHPS3pG0qER8ThwEvBIZRlJ+wIvRERIOoasFbO2kfcxM7OR00gfw4GSLqpatg5YEhHLhtnuQuCH6YqkJ4FzJc0DiIgFwBzg05I2AQPA2RHhFoGZWUkaSQyd6XVLmv8AcD8wT9INEfFPtTZKSaOzavGCivVXAlc2EIeZmRWokcQwFTgqItYDSLqErM/gBLKrjWomBjMzay2NXEs2g/w9CBvJriYaAP48olGZmVlpGmkx/Ctwj6SfpfkPAtdL2pWqDmUzM2tddSeGiPhHSbcDx5MNjzEvInrS6o8UEZyZmTVfIy0GgKVkdydPAJA0IyKeHvGozMysNI08qOdC4BLgBbLnMYhsEL3DiwnNxrru7m56e3vLDqMhK1euBKCrq6vkSOrX0dHRUvFa8RppMXwWODQifPOZNUVvby9PPPQAM3ZrnedC7bwxu57j9VX3lxxJfZ5eP77sEGwH1EhieIbshjazppmx25t8uXN92WGMWl/r2a3sEGwH1EhieBK4S9JtVFyeGhHfHHoTMzNrNY0khqfTa+f0MjMb2sstNuz2YMO0lRpRLwPTR77aRi5X/SqApF1rPE/BzOz/6+joKDuEhg1eOHDw9INLjqQB04v5XTdyVdJxwPfJ8umM9OCdT0XE+SMelZm1tFa8ymkw5u7u7pIjKV8j7bxvkz2bYS1ARDxINk6SmZmNIg2dAIyIZ6oWtc51hGZmVpeGLleV9B4g0rMVuoBHiwnLzMzK0kiLYR5wAVkfeB9wZJo3M7NRpJGrktbgwfLMzEa9rSYGSfPJxkSqKSJa7/IDMzMbUj0thp6tFzEzs9Fiq4khIhbVU5Gk+RFxYY3lU4CrgXeQtTw+ERG/r1gv4Arg/cAG4JyIeKC+8M3MbKQ1+jyG4Rw/xPIrgJ9HxJx0NdPkqvWzgYPT693AVemnmZmVoNCBTCTtQXYT3PcBIuKNiHi5qtgZwHWRuQeYImm/IuMyM7OhFT3C1UFAP3CNpKWSrk7PiK40nWxI70F9FDIslJmZ1WMkE4NqLJsAHAVcFRHvBF4DvlTHdltcBSXpPEk9knr6+/u3O1gzM6ttJBPDFTWW9QF9EXFvmr+RLFFUlzmgYr6d7LnSORGxMCI6I6Kzra1tJOI1M7Ma6rmP4RaGv4/h9PTz2hrrnpf0jKRDI+Jx4CTgkapiNwOfkfQjsk7ndRGxuv6PYGZmI6meq5Iu3873uBD4Yboi6UngXEnzACJiAbCY7FLVXrLLVc/dzvczM7PtUM99DL/enjeIiGVAZ9XiBRXrA4+5ZDX09fXx2qvj/VziAj316nh27esrOwzbwTTyoJ6Dga8DhwETB5dHxEEFxGVmZiVp5Aa3a4BLgG8BJ5Kd8ql1RZHZiGhvb+f1Tav5cuf6rRe2bfK1nt2Y2N5edhi2g2nkqqRJEfFLQBHxVERcCryvmLDMzKwsjbQYXpc0Dlgp6TPAs8DexYRlZmZlaaTF8DmycY66gKOBjwFziwjKzMzK08iDeu4HSK2Groh4tbCoWkB3dze9vb0jXm9fukKkvYDzvh0dHXR1+fEZZja8ulsMkjolrQCWAyskPSjp6OJCG5sGBgYYGBgoOwwzG8Ma6WP4AXB+RNwNIOm9ZFcqHV5EYDu6oo68B+vt7u4upH4zs61ppI/h1cGkABARvwXG9OkkM7PRqJEWw32SvgtcTzZ20lnAXZKOAvBT18zMRodGEsOR6eclVcvfQ5YofE+Dmdko0MhVSScWGYiZme0YGrkqaR9J35d0e5o/TNLfFReamZmVoZHO52uBXwD7p/knyG56MzOzUaSRxDAtIv43sBkgIjYBbxYSlZmZlaaRxPCapKmkp7lJOhZYV0hUZmZWmkauSrqI7DGcb5P0f4E2YE4hUZklT69vrQf1vLAhO9baZ/LmkiOpz9Prx3NI2UE0qKjhaFauXAkUc/Nqqw1H00hieBswGzgAOJPs+cyNbG/WkI6OjrJDaNgb6ctl4syDS46kPofQmr/nIkyaNKnsEHYYjXyx/0NE3CDpLcDJwD8DV5EliCFJWkV2h/SbwKaI6KxaPwv4GfDHtOgnEXFZA3HZKNVKR1iDPKRJ8Vrx76LVNJIYBjuaPwAsiIifSbq0zm1PjIg1w6y/OyJOayAWMzMrSCOdz8+mITE+BCyWtEuD25uZWQto5Iv9Q2T3MfxtRLwM7AV8sY7tArhD0hJJ5w1R5rg0jPftkt7eQExmZjbCGhkSYwPwk4r51cDqOjY9PiKek7Q3cKekxyLiNxXrHwAOjIj1kt4P/BTYoucuJZXzAGbMmFFv2GZm1qDCTwVFxHPp54vATcAxVetfiYj1aXoxsJOkaTXqWRgRnRHR2dbWVnTYZmZjVqGJQdKuknYfnAZOBR6qKrOvJKXpY1JMa4uMy8zMhlb0fQj7ADel7/0JwL9GxM8lzQOIiAVkN8l9WtImYAA4OyKi4LjMzGwIhSaGiHgSOKLG8gUV01cCVxYZh5mZ1c+Xm5qZWY4Tg5mZ5TgxmJlZjhODmZnlODGYmVmOE4OZmeU4MZiZWY4Tg5mZ5TgxmJlZjhODmZnljOpnNhf10PAiFflA8iK12sPOzWxoozox9Pb2snTFI2yevFfZodRNb2TjBy75w/MlR1K/cRteKjsEMxtBozoxAGyevBevH+bHSRdp4iO3lh2CmY0g9zGYmVmOE4OZmeU4MZiZWY4Tg5mZ5TgxmJlZjhODmZnlFJ4YJK2StELSMkk9NdZLUrekXknLJR1VdExmZja0Zt3HcGJErBli3Wzg4PR6N3BV+mlmZiXYEW5wOwO4LiICuEfSFEn7RcTq7a24r6+PcRvW+Qasgo3bsJa+vk1lh2FmI6QZfQwB3CFpiaTzaqyfDjxTMd+XluVIOk9Sj6Se/v7+gkI1M7NmtBiOj4jnJO0N3CnpsYj4TcV61dgmtlgQsRBYCNDZ2bnF+lra29t54c8TPCRGwSY+civt7fuWHYaZjZDCWwwR8Vz6+SJwE3BMVZE+4ICK+XbguaLjMjOrtGbNGi688ELWrl1bdiilKzQxSNpV0u6D08CpwENVxW4GPp6uTjoWWDcS/QtmZo1YtGgRy5cvZ9GiRWWHUrqiWwz7AL+V9CBwH3BbRPxc0jxJ81KZxcCTQC/wPeD8gmMyM8tZs2YNt99+OxHB7bffPuZbDYX2MUTEk8ARNZYvqJgO4IIi4zCrVOQDnIp80JIfhlScRYsWkX0VwebNm1m0aBEXXXRRyVGVx3c+m42gSZMmMWnSpLLDsAbdeeedbNy4EYCNGzdyxx13lBxRuXaE+xjMmspH3VbtlFNOYfHixWzcuJGddtqJU089teyQSuUWg5mNeXPnzkXKrpwfN24cc+fOLTmicjkxmNmYN23aNGbPno0kZs+ezdSpU8sOqVSj/lTSuA0vtdSQGHr9FQBi4h4lR1K/cRteAnyDm7W2uXPnsmrVqjHfWoBRnhg6OjrKDqFhK1e+CsDBb2ulL9p9W/J3bVZp2rRpzJ8/v+wwdgijOjG0YifjYMzd3d0lR2JmY5X7GMzMLMeJwczMcpwYzMwsx4nBzMxynBjMzCzHicHMzHKcGMzMLMeJwczMcpwYzMwsx4nBzMxynBjMzCynKYlB0nhJSyVtMcyppHMk9Utall6fbEZMZmZWW7MG0fss8Cgw1FjS/xYRn2lSLGZmNozCWwyS2oEPAFcX/V5mZrb9mnEq6dvAfwE2D1PmTEnLJd0o6YAmxGRmZkMoNDFIOg14MSKWDFPsFmBmRBwO/DuwaIi6zpPUI6mnv7+/gGjNzAyKbzEcD5wuaRXwI+B9kv6lskBErI2IP6fZ7wFH16ooIhZGRGdEdLa1tRUZs5nZmFZoYoiIiyOiPSJmAmcDv4qIj1aWkbRfxezpZJ3UZmZWklIe7SnpMqAnIm4GuiSdDmwCXgLOKSMmMzPLNC0xRMRdwF1p+isVyy8GLm5WHGZmNjzf+WxmZjlODGZmluPEYGZmOU4MZmaW48RgZmY5pVyuOhp0d3fT29s74vWuXLkSgK6urhGvu6Ojo5B6zWx0cWLYwUyaNKnsEMxsjHNi2EY+8jaz0cp9DGZmluPEYGZmOU4MZmaW48RgZmY5TgxmZpbjxGBmZjlODGZmluPEYGZmOYqIsmNomKR+4Kmy4yjQNGBN2UHYNvP+a12jfd8dGBFtWyvUkolhtJPUExGdZcdh28b7r3V532V8KsnMzHKcGMzMLMeJYce0sOwAbLt4/7Uu7zvcx2BmZlXcYjAzsxwnhpJJOkfS/mXHYdtO0mWSTt6G7WZJurWImMYqSftLunEbtrta0mFbKTNP0se3PbrW4VNJJZN0F/CFiOgpOxYbmiSR/b9sHsE6Z5Ht+9PqLD8hIjaN1PuPJf7dNcYthgJI2lXSbZIelPSQpLMkHS3p15KWSPqFpP0kzQE6gR9KWiZpkqSTJC2VtELSDyTtkur8H5IekbRc0uVp2Qcl3ZvK/7ukfcr83K1A0jcknV8xf6mkv5f0RUn3p9/vV9O6mZIelfQd4AHgAEnXpn26QtLnU7lr075E0rsk/S7t+/sk7S5poqRr0jZLJZ1YI669JP00vf89kg6viG+hpDuA65rwK2oZw+zLh9L8OZJukHQLcIekcZK+I+lhSbdKWlyx3+6S1Jmm10v6b2kf3jP4f5Xq/0Ka7kj/cw9KekDS2yTtJumXaX6FpDOa/ksZKRHh1wi/gDOB71XM7wn8DmhL82cBP0jTdwGdaXoi8AxwSJq/DvgcsBfwOH9p4U1JP99SseyTwD+X/dl39BfwTuDXFfOPAB8nuxpFZAdLtwInADOBzcCxqezRwJ0V2w7uh2uBOcDOwJPAu9LyPcgen/v3wDVp2X8Ank77ehZwa1o+H7gkTb8PWJamLwWWAJPK/t3taK8h9uUJwENp/hygD9grzc8BFqd9vC/wJ2BOWlf5fxjAB9P0PwFfrtgXX0jT9wL/KU1PBCanfb1HWjYN6B38/2y1l5/5XIwVwOWSvkH2JfMn4B3AndkZCcYDq2tsdyjwx4h4Is0vAi4ArgReB66WdFuqE6Ad+DdJ+5F9Kf2xmI8zekTEUkl7p36dNrJ9czhwKrA0FdsNOJjsC/ypiLgnLX8SOEjSfOA24I6q6g8FVkfE/em9XgGQ9F6yL34i4jFJTwGHVG37XrIDCiLiV5KmStozrbs5Iga2/9OPLkPsy6erit0ZES+l6fcCN0R2OvB5Sf9niKrf4C//Y0uAUypXStodmB4RN6U4Xk/LdwL+u6QTyA4opgP7AM9vx8cshRNDASLiCUlHA+8Hvg7cCTwcEcdtZVMNUd8mSccAJwFnA58hO6qcD3wzIm5O56svHZlPMOrdSHb0uC/wI7KWwdcj4ruVhSTNBF4bnI+IP0k6AvgbsoT9IeATlZuQHW1Wq7lf6ygzWNdrNdZZpnpfVqv83dWzHwA2RjrsB95ky+/Joer5CFmCOjoiNkpaRdaaaDnuYyhAOoLZEBH/AlwOvBtok3RcWr+TpLen4q8Cu6fpx4CZkjrS/MeAX0vaDdgzIhaTnVo6Mq3fE3g2Tc8t8jONMj8iS7BzyL5YfgF8Iv2ekTRd0t7VG0maBoyLiB8D/wAcVVXkMWB/Se9K5XeXNAH4DdmXBpIOAWaQnRqsVFlmFrBmsMVhw6rel8P5LXBm6mvYh+xUXsPSfumT9B8BJO0iaTLZ/+OLKSmcCBy4LfXvCNxiKMZfA/9T0mZgI/BpYBPQnU4PTAC+DTxMdn56gaQB4DjgXOCG9IVyP7CArI/hZ5Imkh2tfD69z6Wp7LPAPcBbm/LpWlxEPJxOBzwbEauB1ZL+Cvh9OtW3Hvgo2dFipenANZIGD6gurqr3DUlnAfMlTQIGgJOB75Dt4xVkfwfnRMSf03sNujTVvRzYgBN9Xar3ZWrlDeXHZK3uh4AnyPoJ1m3jW38M+K6ky8j+x/8z8EPgFkk9wDKyA4WW5MtVzWzMkLRbRKyXNBW4Dzg+IlquD6BobjGY2Vhyq6QpZBdr/KOTQm1uMZiZWY47n83MLMeJwczMcpwYzMwsx4nBrGBpTJ4pZcdhVi93PpuZWY5bDGYMOSLuqjSC533p1ZHKtkn6sbLRWO+XdHxavpv+MorqcklnpuWr0l3TSPpoqmuZpO9KGp9eW4zaalYW38dglvlb4LmI+ABAukP9G8ArEXGMsge0fBs4DbgC+FZE/FbSDLIhNf6KbJiMdRHx16mOt1S+Qbq7+iyym6o2KhvO+yNkd8BPj4h3pHI+7WSlcmIwy+RGxI2Iu9OQFden9dcD30rTJwOHVQxpsUcaluFksnF7gGzQvar3OIls6O7707aTgBeBWxh+1FazpnJiMGPLEXGVPRgH8qOlDk6PA46rHgpb2bf9cJ12AhZFxMVbrBh+1FazpnIfgxk1R8QdHDn1rIqfv0/Td5ANfT647ZFDLM+dSgJ+CcwZHLlV2VPbDqxj1FazpnKLwSxTa0TcG4FdJN1LdhD14VS2C/hfaSTUwWG15wFfS8sfIhuZ9avATwbfICIekfRl0mMm0/tcQDYK65Cjtpo1my9XNRtCetBKZ0SsKTsWs2byqSQzM8txi8HMzHLcYjAzsxwnBjMzy3FiMDOzHCcGMzPLcWIwM7McJwYzM8v5f25+FLuNP0nJAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 一个数值变量和多个分组 One numerical variable, and several groups\n",
    "# 假设我们想要研究数值变量的分布，但是对于每个组分别进行研究。在这里，我们研究了3种花的萼片长度。\n",
    "# x花的品种，y花萼长度\n",
    "sns.boxplot( x=df[\"species\"], y=df[\"sepal_length\"] );"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 多个数值变量 Several numerical variable\n",
    "# 可以研究几个数值变量的分布，比如说萼片的长度和宽度：\n",
    "sns.boxplot(data=df.iloc[:,0:2]);"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 水平箱型图 Horizontal boxplot with seaborn\n",
    "# 用seaborn将你的箱图水平转动是非常简单的。您可以切换x和y属性，或使用选项orient =\"h\"\n",
    "sns.boxplot( y=df[\"species\"], x=df[\"sepal_length\"] );"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 2. 自定义外观 Custom boxplot appearance\n",
    "+ 自定义线宽 Custom line width\n",
    "+ 添加缺口 Add notch\n",
    "+ 控制箱的尺寸 Control box sizes"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 自定义线宽 Custom line width\n",
    "# Change line width\n",
    "# 根据linewidth改变线条宽度\n",
    "sns.boxplot( x=df[\"species\"], y=df[\"sepal_length\"], linewidth=5);"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 添加缺口 Add notch\n",
    "# notch设置为true即可\n",
    "sns.boxplot( x=df[\"species\"], y=df[\"sepal_length\"], notch=True);"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 控制箱的尺寸 Control box sizes\n",
    "# Change width\n",
    "sns.boxplot( x=df[\"species\"], y=df[\"sepal_length\"], width=0.3);"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3. 箱型图的颜色设置 Control colors of boxplot\n",
    "+ 调色板的使用 Use a color palette \n",
    "+ 单种颜色的使用 Uniform color\n",
    "+ 每组的特定颜色 Specific color for each group\n",
    "+ 单组高亮 Highlight a group\n",
    "+ 添加透明色 Add transparency to color"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 调色板的使用 Use a color palette \n",
    "# Python提出了几种调色板。您可以像Set1，Set2，Set3，Paired，BuPu一样调用RColorBrewer调色板，还有Blues或BuGn_r等调色板。\n",
    "# 调色板各种颜色见 http://www.r-graph-gallery.com/38-rcolorbrewers-palettes/\n",
    "# t通过plaette调用调色板，Use a color palette\n",
    "sns.boxplot( x=df[\"species\"], y=df[\"sepal_length\"], palette=\"Blues\");"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 单种颜色的使用 Uniform color\n",
    "# 当然您可以轻松地为每个盒子应用同样的颜色。最常见的是b: blue\n",
    "# 颜色列表 https://matplotlib.org/examples/color/named_colors.html\n",
    "sns.boxplot( x=df[\"species\"], y=df[\"sepal_length\"], color=\"skyblue\");"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 每组的特定颜色 Specific color for each group\n",
    "# 用不用颜色描绘不同种类的花\n",
    "my_pal = {\"versicolor\": \"g\", \"setosa\": \"b\", \"virginica\":\"m\"}\n",
    "sns.boxplot( x=df[\"species\"], y=df[\"sepal_length\"], palette=my_pal);"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 单组高亮 Highlight a group\n",
    "# 设定某一组为红色，其他组为蓝色\n",
    "my_pal = {species: \"r\" if species == \"versicolor\" else \"b\" for species in df.species.unique()}\n",
    "sns.boxplot( x=df[\"species\"], y=df[\"sepal_length\"], palette=my_pal);"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYYAAAEKCAYAAAAW8vJGAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAGwNJREFUeJzt3XuUHWWZ7/HvL4RLJ0AiSUNCGhKxIWfUAYQWQVwskMtMFOHMIkdweQkwGiNIqyhnyVmOIOMcjgNe6HAkBgTCGgdnQFEuiYbRg+JRLh0I4RZIT0xIkwQ6UQJJGkjgOX9U9XHXZndn76RrV+/u32etvbrqrbfe/eyu7v3UW5e3FBGYmZn1GVV0AGZmNrQ4MZiZWYYTg5mZZTgxmJlZhhODmZllODGYmVmGE4OZmWU4MZiZWYYTg5mZZYwuOoCdMXHixJg2bVrRYZiZNZQlS5ZsiIjmHdXLPTFI+hLwaSCAx4HzIuLVkuV7ArcARwMbgbMjYtVAbU6bNo3Ozs7cYjYzG44kra6mXq6HkiRNAdqBtoh4N7AbcE5Ztb8H/hwRrcB3gW/lGZOZmQ2sHucYRgNNkkYDY4C1ZcvPBBak07cDJ0tSHeIyM7MKck0MEfE8cDXwHLAO2BQRi8uqTQHWpPW3A5uACXnGZWZm/cv7UNLbSHoEbwcOBMZK+kR5tQqrvmUscEmzJXVK6uzp6Rn8YM3MDMj/UNIpwB8joicitgE/Bd5fVqcbOAggPdw0DvhTeUMRMT8i2iKirbl5hyfVzcxsJ+WdGJ4DjpU0Jj1vcDLwdFmdO4FZ6fRM4NfhpweZmRUm73MMD5KcUH6E5FLVUcB8SVdIOiOt9kNggqQu4GLgq3nGZGZmA1Mj7py3tbWF72MwG5k6Ojro6uoa9Ha7u7sBaGlpGfS2W1tbaW9vH/R2ayVpSUS07aheQ975bGY22Hp7e4sOYchwYjCzhpLXnndfux0dHbm030g8iJ6ZmWU4MZiZWYYTg5mZZTgxmJlZhhODmZllODGYmVmGE4OZmWU4MZiZWYYTg5mZZTgxmJlZhhODmZllODGYmVmGE4OZmWU4MZiZWYYTg5mZZTgxmJlZhhODmZll5JoYJE2XtLTk9bKkL5bVOVHSppI6X88zJjMzG1iuj/aMiGeAIwEk7QY8D9xRoer9EXF6nrGYmVl16nko6WTgPyNidR3f08zMalTPxHAOcGs/y46T9JikRZLeVamCpNmSOiV19vT05BelmdkIV5fEIGkP4AzgtgqLHwGmRsQRwFzgZ5XaiIj5EdEWEW3Nzc35BWtmNsLVq8cwA3gkIl4oXxARL0fE5nR6IbC7pIl1isvMzMrUKzF8jH4OI0maJEnp9DFpTBvrFJeZmZXJ9aokAEljgFOBz5aUzQGIiHnATOBzkrYDvcA5ERF5x2VmZpXlnhgiYiswoaxsXsn0tcC1ecdhZmbV8Z3PZmaW4cRgZmYZTgxmZpbhxGBmZhlODGZmluHEYGZmGU4MZmaW4cRgZmYZTgxmZpbhxGBmZhlODGZmluHEYGZmGU4MZmaW4cRgZmYZTgxmZpbhxGBmZhlODGZmluHEYGZmGbkmBknTJS0teb0s6YtldSSpQ1KXpGWSjsozJjMzG1iuz3yOiGeAIwEk7QY8D9xRVm0GcGj6eh9wXfrTzMwKUM9DSScD/xkRq8vKzwRuicQDwHhJk+sYl5mZlci1x1DmHODWCuVTgDUl891p2bp6BGUjT0dHB11dXbm03d3dDUBLS8ugt93a2kp7e/ugt2tWri49Bkl7AGcAt1VaXKEsKrQxW1KnpM6enp7BDtFsUPT29tLb21t0GGa7pF49hhnAIxHxQoVl3cBBJfMtwNryShExH5gP0NbW9pbEYVatPPe6+9ru6OjI7T3M8lavcwwfo/JhJIA7gU+lVycdC2yKCB9GMjMrSO49BkljgFOBz5aUzQGIiHnAQuBDQBewFTgv75jMzKx/uSeGiNgKTCgrm1cyHcCFecdhZvWT5wn+vKxYsQLI91BjHvK4KKGeVyWZ2QjR1dXF8meXM/ngxrnyfLc9dgNg06ubCo6keuuey+eouxODmeVi8sGT+cylnyk6jGHt+iuvz6Vdj5VkZmYZTgxmZpbhxGBmZhlODGZmluHEYGZmGU4MZmaW4cRgZmYZTgxmZpbhxGBmZhlODGZmluHEYGZmGU4MZmaW4cRgZmYZVY+uKukw4BJgaul6EfHBHOIyM7OC1DLs9m3APOB64I18wjEzs6LVkhi2R8R1uUViZmZDwg7PMUjaT9J+wF2SLpA0ua8sLd/R+uMl3S5puaSnJR1XtvxESZskLU1fX9+Fz2NmZruomh7DEiAApfOXlCwL4JAdrH8N8IuImClpD2BMhTr3R8TpVcRiZmY522FiiIi3A0jaKyJeLV0maa+B1pW0L3ACcG7a1uvA6zsbrJmZ5a+Wcwy/B46qoqzUIUAPcJOkI0h6H1+IiC1l9Y6T9BiwFvhKRDxZQ1xmNsR0d3ezecvm3J5JbIl1q9fxythXBr3das4xTJJ0NNAk6T2SjkpfJ1L5sFCp0SSJ47qIeA+wBfhqWZ1HgKkRcQQwF/hZP3HMltQpqbOnp2dHYZuZ2U6qpsfwNySHglqA75SUvwL8jx2s2w10R8SD6fztlCWGiHi5ZHqhpO9LmhgRG8rqzQfmA7S1tUUVcZtZQVpaWtj06iY+c+lnig5lWLv+yusZt9e4QW+3mnMMC4AFks6KiJ/U0nhErJe0RtL0iHgGOBl4qrSOpEnACxERko4h6cVsrOV9zMxs8NRyjmGqpIvLyjYBSyJi6QDrXQT8KL0iaSVwnqQ5ABExD5gJfE7SdqAXOCci3CMwMytILYmhLX3dlc5/GHgYmCPptoj450orpUmjrax4Xsnya4Fra4jDzMxyVEtimAAcFRGbASRdRnLO4ASSq40qJgYzM2sstYyuejDZexC2kVxN1Au8NqhRmZlZYWrpMfwr8ICkn6fzHwFulTSWshPKZmbWuKpODBHxj5IWAceTDI8xJyI608UfzyM4MzOrv1p6DACPktydPBpA0sER8dygR2VmZoWp5UE9FwGXAS+QPI9BJIPoHZ5PaDbSdXR00NXVVXQYNVmxYgUA7e3tBUdSvdbW1oaK1/JXS4/hC8D0iPDNZ1YXXV1drHhmOYccNKnoUKq21+7J9RxvbH2p4Eiqs3LN+qJDsCGolsSwhuSGNrO6OeSgSVx1yflFhzFsXXLVjUWHYENQLYlhJXCfpHsouTw1Ir7T/ypmZtZoakkMz6WvPdKXmVm/1j23rqGG3d74QnKUfMIBEwqOpHrrnlvHuMMKGESvT0R8A0DS2ArPUzAz+/9aW1uLDqFmL77+IkAuo5XmZdxh43L5XddyVdJxwA+BvYGD0wfvfDYiLhj0qMysoTXiVU59MXd0dBQcSfFqGRLjeyTPZtgIEBGPkYyTZGZmw0gtiYGIWFNW9MYgxmJmZkNATZerSno/EOmzFdqBp/MJy8zMilJLj2EOcCEwheSRnUem82ZmNozUclXSBjxYnpnZsLfDxCBpLsmYSBVFRONdfmBmZv2qpsfQueMqZmY2XOwwMUTEgmoakjQ3Ii6qUD4euAF4N0nP4/yI+EPJcgHXAB8CtgLnRsQj1YVvZmaDrdbnMQzk+H7KrwF+EREz06uZxpQtnwEcmr7eB1yX/jQzswLUdB9DrSTtS3IT3A8BIuL1iCgfj/hM4JZIPACMlzQ5z7jMzKx/uSYG4BCgB7hJ0qOSbkifEV1qCsmQ3n260zIzMyvAYCYGVSgbDRwFXBcR7wG2AF+tYr23XAUlabakTkmdPT09uxysmZlVNpiJ4ZoKZd1Ad0Q8mM7fTpIoyuscVDLfQvJc6YyImB8RbRHR1tzcPBjxmplZBdXcx3AXA9/HcEb68+YKy9ZLWiNpekQ8A5wMPFVW7U7g85J+THLSeVNErKv+I5iZ2WCq5qqkq3fxPS4CfpRekbQSOE/SHICImAcsJLlUtYvkctXzdvH9zMxsF1RzH8NvduUNImIp0FZWPK9keeAxl6yC7u5uere84ucS52jlmnU0jd1cdBg2xNTyoJ5DgSuBdwJ79ZVHxCE5xGVmZgWp5Qa3m4DLgO8CJ5Ec8ql0RZHZoGhpaeGNrS9x1SXnFx3KsHXJVTey25jxRYdhQ0wtVyU1RcSvAEXE6oi4HPhgPmGZmVlRaukxvCppFLBC0ueB54H98wnLzMyKUkuP4Ysk4xy1A0cDnwRm5RGUmZkVp5YH9TwMkPYa2iPildyiagAdHR10dXUNervd3d1Acnx9sLW2ttLe7sdnmNnAqu4xSGqT9DiwDHhc0mOSjs4vtJGpt7eX3t7eosMwsxGslnMMNwIXRMT9AJI+QHKl0uF5BDbU5bXn3dduR0dHLu2bme1ILecYXulLCgAR8TtgRB9OMjMbjmrpMTwk6QfArSRjJ50N3CfpKAA/dc3MbHioJTEcmf68rKz8/SSJwvc0mJkNA7VclXRSnoGYmdnQUMtVSQdI+qGkRen8OyX9fX6hmZlZEWo5+Xwz8EvgwHT+WZKb3szMbBipJTFMjIh/B94EiIjtwBu5RGVmZoWpJTFskTSB9Gluko4FNuUSlZmZFaaWq5IuJnkM5zsk/V+gGZiZS1RmqZVr1jfUg3rWvrgRgAP3n1BwJNVZuWY9h05vrGG38xqOZsWKFUA+N6822nA0tSSGdwAzgIOAs0iez1zL+mY1aW1tLTqEmr26rQegYZ5xcOj08Q35e85DU1NT0SEMGbV8sf9DRNwm6W3AKcC3getIEkS/JK0iuUP6DWB7RLSVLT8R+Dnwx7TopxFxRQ1x2TDVSHtYfTykSf4a8e+i0dSSGPpONH8YmBcRP5d0eZXrnhQRGwZYfn9EnF5DLGZmlpNaTj4/nw6J8VFgoaQ9a1zfzMwaQC1f7B8luY/hbyPiJWA/4JIq1gtgsaQlkmb3U+e4dBjvRZLeVUNMZmY2yGoZEmMr8NOS+XXAuipWPT4i1kraH7hX0vKI+G3J8keAqRGxWdKHgJ8Bh5Y3kiaV2QAHH3xwtWGbmVmNcj8UFBFr058vAncAx5QtfzkiNqfTC4HdJU2s0M78iGiLiLbm5ua8wzYzG7FyTQySxkrap28aOA14oqzOJElKp49JY9qYZ1xmZta/vO9DOAC4I/3eHw38a0T8QtIcgIiYR3KT3OckbQd6gXMiInKOy8zM+pFrYoiIlcARFcrnlUxfC1ybZxxmZlY9X25qZmYZTgxmZpbhxGBmZhlODGZmluHEYGZmGU4MZmaW4cRgZmYZTgxmZpbhxGBmZhlODGZmljGsn9mc10PD85TnA8nz1GgPOzez/g3rxNDV1cXyZ55lUsvUokOp2qjd9wDgpS2vFRxJ9dZ3ry46BDMbRMM6MQBMapnKp7/8taLDGNZu+PY3iw7BzAaRzzGYmVmGE4OZmWU4MZiZWYYTg5mZZTgxmJlZhhODmZll5J4YJK2S9LikpZI6KyyXpA5JXZKWSToq75jMzKx/9bqP4aSI2NDPshnAoenrfcB16U8zMyvAULjB7UzglogI4AFJ4yVNjoh1u9pwd3c3r2zZ6huwcrauezWbx44pOgwzGyT1OMcQwGJJSyTNrrB8CrCmZL47LcuQNFtSp6TOnp6enEI1M7N69BiOj4i1kvYH7pW0PCJ+W7JcFdaJtxREzAfmA7S1tb1leSUtLS28tOU1D4mRsxu+/U3Gj92z6DDMbJDk3mOIiLXpzxeBO4Bjyqp0AweVzLcAa/OOy8ys1IYNG7jooovYuHFj0aEULtfEIGmspH36poHTgCfKqt0JfCq9OulYYNNgnF8wM6vFggULWLZsGQsWLCg6lMLl3WM4APidpMeAh4B7IuIXkuZImpPWWQisBLqA64ELco7JzCxjw4YNLFq0iIhg0aJFI77XkOs5hohYCRxRoXxeyXQAF+YZh1mpPB/glOeDlvwwpPwsWLCA5KsI3nzzTRYsWMDFF19ccFTF8Z3PZoOoqamJpqamosOwGt17771s27YNgG3btrF48eKCIyrWULiPwayuvNdt5U499VQWLlzItm3b2H333TnttNOKDqlQ7jGY2Yg3a9YspOTK+VGjRjFr1qyCIyqWE4OZjXgTJ05kxowZSGLGjBlMmDCh6JAKNewPJa3vXt1QQ2Js7FkPwITmSQVHUr313asZP/2wosMw2yWzZs1i1apVI763AMM8MbS2thYdQs161r4O0FB3Eo+fflhD/q7NSk2cOJG5c+cWHcaQMKwTQyOeZOyLuaOjo+BIzGyk8jkGMzPLcGIwM7MMJwYzM8twYjAzswwnBjMzy3BiMDOzDCcGMzPLcGIwM7MMJwYzM8twYjAzswwnBjMzy6hLYpC0m6RHJd1dYdm5knokLU1fn65HTGZmVlm9BtH7AvA0sG8/y/8tIj5fp1jMzGwAufcYJLUAHwZuyPu9zMxs19XjUNL3gP8OvDlAnbMkLZN0u6SD6hCTmZn1I9fEIOl04MWIWDJAtbuAaRFxOPAfwIJ+2potqVNSZ09PTw7RmpkZ5N9jOB44Q9Iq4MfAByX9S2mFiNgYEa+ls9cDR1dqKCLmR0RbRLQ1NzfnGbOZ2YiWa2KIiEsjoiUipgHnAL+OiE+U1pE0uWT2DJKT1GZmVpBCHu0p6QqgMyLuBNolnQFsB/4EnFtETGZmlqhbYoiI+4D70umvl5RfClxarzjMzGxgvvPZzMwynBjMzCzDicHMzDKcGMzMLMOJwczMMgq5XHU46OjooKura9DbXbFiBQDt7e2D3nZra2su7ZrZ8OLEMMQ0NTUVHYKZjXBODDvJe95mNlz5HIOZmWU4MZiZWYYTg5mZZTgxmJlZhhODmZllODGYmVmGE4OZmWU4MZiZWYYiougYaiapB1hddBw5mghsKDoI22nefo1ruG+7qRHRvKNKDZkYhjtJnRHRVnQctnO8/RqXt13Ch5LMzCzDicHMzDKcGIam+UUHYLvE269xedvhcwxmZlbGPQYzM8twYiiYpHMlHVh0HLbzJF0h6ZSdWO9ESXfnEdNIJelASbfvxHo3SHrnDurMkfSpnY+ucfhQUsEk3Qd8JSI6i47F+idJJP8vbw5imyeSbPvTq6w/OiK2D9b7jyT+3dXGPYYcSBor6R5Jj0l6QtLZko6W9BtJSyT9UtJkSTOBNuBHkpZKapJ0sqRHJT0u6UZJe6Zt/i9JT0laJunqtOwjkh5M6/+HpAOK/NyNQNK3JF1QMn+5pC9LukTSw+nv9xvpsmmSnpb0feAR4CBJN6fb9HFJX0rr3ZxuSyS9V9Lv023/kKR9JO0l6aZ0nUclnVQhrv0k/Sx9/wckHV4S33xJi4Fb6vArahgDbMsn0vlzJd0m6S5gsaRRkr4v6UlJd0taWLLd7pPUlk5vlvRP6TZ8oO//Km3/K+l0a/o/95ikRyS9Q9Lekn6Vzj8u6cy6/1IGS0T4Ncgv4Czg+pL5ccDvgeZ0/mzgxnT6PqAtnd4LWAMcls7fAnwR2A94hr/08ManP99WUvZp4NtFf/ah/gLeA/ymZP4p4FMkV6OIZGfpbuAEYBrwJnBsWvdo4N6Sdfu2w83ATGAPYCXw3rR8X5LH534ZuCkt+y/Ac+m2PhG4Oy2fC1yWTn8QWJpOXw4sAZqK/t0NtVc/2/IE4Il0/lygG9gvnZ8JLEy38STgz8DMdFnp/2EAH0mn/xn4Wsm2+Eo6/SDwd+n0XsCYdFvvm5ZNBLr6/j8b7eVnPufjceBqSd8i+ZL5M/Bu4N7kiAS7AesqrDcd+GNEPJvOLwAuBK4FXgVukHRP2iZAC/BvkiaTfCn9MZ+PM3xExKOS9k/P6zSTbJvDgdOAR9NqewOHknyBr46IB9LylcAhkuYC9wCLy5qfDqyLiIfT93oZQNIHSL74iYjlklYDh5Wt+wGSHQoi4teSJkgaly67MyJ6d/3TDy/9bMvnyqrdGxF/Sqc/ANwWyeHA9ZL+Tz9Nv85f/seWAKeWLpS0DzAlIu5I43g1Ld8d+J+STiDZoZgCHACs34WPWQgnhhxExLOSjgY+BFwJ3As8GRHH7WBV9dPedknHACcD5wCfJ9mrnAt8JyLuTI9XXz44n2DYu51k73ES8GOSnsGVEfGD0kqSpgFb+uYj4s+SjgD+hiRhfxQ4v3QVkr3NchW3axV1+traUmGZJcq3ZbnS31012wFgW6S7/cAbvPV7sr92Pk6SoI6OiG2SVpH0JhqOzzHkIN2D2RoR/wJcDbwPaJZ0XLp8d0nvSqu/AuyTTi8HpklqTec/CfxG0t7AuIhYSHJo6ch0+Tjg+XR6Vp6faZj5MUmCnUnyxfJL4Pz094ykKZL2L19J0kRgVET8BPgH4KiyKsuBAyW9N62/j6TRwG9JvjSQdBhwMMmhwVKldU4ENvT1OGxA5dtyIL8DzkrPNRxAciivZul26Zb0XwEk7SlpDMn/44tpUjgJmLoz7Q8F7jHk46+BqyS9CWwDPgdsBzrSwwOjge8BT5Icn54nqRc4DjgPuC39QnkYmEdyjuHnkvYi2Vv5Uvo+l6d1nwceAN5el0/X4CLiyfRwwPMRsQ5YJ+mvgD+kh/o2A58g2VssNQW4SVLfDtWlZe2+LulsYK6kJqAXOAX4Psk2fpzk7+DciHgtfa8+l6dtLwO24kRflfJtmfby+vMTkl73E8CzJOcJNu3kW38S+IGkK0j+x/8b8CPgLkmdwFKSHYWG5MtVzWzEkLR3RGyWNAF4CDg+IhruHEDe3GMws5HkbknjSS7W+EcnhcrcYzAzswyffDYzswwnBjMzy3BiMDOzDCcGs5ylY/KMLzoOs2r55LOZmWW4x2BGvyPirkpH8HwofbWmdZsl/UTJaKwPSzo+Ld9bfxlFdZmks9LyVeld00j6RNrWUkk/kLRb+nrLqK1mRfF9DGaJvwXWRsSHAdI71L8FvBwRxyh5QMv3gNOBa4DvRsTvJB1MMqTGX5EMk7EpIv46beNtpW+Q3l19NslNVduUDOf9cZI74KdExLvTej7sZIVyYjBLZEbEjYj70yErbk2X3wp8N50+BXhnyZAW+6bDMpxCMm4PkAy6V/YeJ5MM3f1wum4T8CJwFwOP2mpWV04MZrx1RFwlD8aB7GipfdOjgOPKh8JW8m0/0Ek7AQsi4tK3LBh41FazuvI5BjMqjojbN3Lq2SU//5BOLyYZ+rxv3SP7Kc8cSgJ+BczsG7lVyVPbplYxaqtZXbnHYJaoNCLu7cCekh4k2Yn6WFq3Hfjf6UiofcNqzwG+mZY/QTIy6zeAn/a9QUQ8JelrpI+ZTN/nQpJRWPsdtdWs3ny5qlk/0gettEXEhqJjMasnH0oyM7MM9xjMzCzDPQYzM8twYjAzswwnBjMzy3BiMDOzDCcGMzPLcGIwM7OM/weiWySF5ebP1gAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 添加透明色 Add transparency to color\n",
    "# usual boxplot 正常绘图\n",
    "ax = sns.boxplot(x='species', y='sepal_length', data=df);\n",
    "# Add transparency to colors 设置透明色\n",
    "for patch in ax.artists:\n",
    "    r, g, b, a = patch.get_facecolor()\n",
    "    patch.set_facecolor((r, g, b, .3))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 4. 分组箱图 Grouped Boxplot"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>total_bill</th>\n",
       "      <th>tip</th>\n",
       "      <th>sex</th>\n",
       "      <th>smoker</th>\n",
       "      <th>day</th>\n",
       "      <th>time</th>\n",
       "      <th>size</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>16.99</td>\n",
       "      <td>1.01</td>\n",
       "      <td>Female</td>\n",
       "      <td>No</td>\n",
       "      <td>Sun</td>\n",
       "      <td>Dinner</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>10.34</td>\n",
       "      <td>1.66</td>\n",
       "      <td>Male</td>\n",
       "      <td>No</td>\n",
       "      <td>Sun</td>\n",
       "      <td>Dinner</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>21.01</td>\n",
       "      <td>3.50</td>\n",
       "      <td>Male</td>\n",
       "      <td>No</td>\n",
       "      <td>Sun</td>\n",
       "      <td>Dinner</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>23.68</td>\n",
       "      <td>3.31</td>\n",
       "      <td>Male</td>\n",
       "      <td>No</td>\n",
       "      <td>Sun</td>\n",
       "      <td>Dinner</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>24.59</td>\n",
       "      <td>3.61</td>\n",
       "      <td>Female</td>\n",
       "      <td>No</td>\n",
       "      <td>Sun</td>\n",
       "      <td>Dinner</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   total_bill   tip     sex smoker  day    time  size\n",
       "0       16.99  1.01  Female     No  Sun  Dinner     2\n",
       "1       10.34  1.66    Male     No  Sun  Dinner     3\n",
       "2       21.01  3.50    Male     No  Sun  Dinner     3\n",
       "3       23.68  3.31    Male     No  Sun  Dinner     2\n",
       "4       24.59  3.61  Female     No  Sun  Dinner     4"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 当您有一个数值变量，几个组和子组时，将使用分组箱图。使用seaborn很容易实现。Y是您的数字变量，x是组列，而hue是子组列。\n",
    "# 调用tips数据集\n",
    "df_tips = sns.load_dataset('tips')\n",
    "df_tips.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYMAAAEKCAYAAADw2zkCAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAHXZJREFUeJzt3X10VfW95/H3NwkSH4IaQCBFjOG2vV0Cam9kaqv2olKnVvtwW9oai3p1hjKVPllFwVr1tl0q0ts76r03lxmsdJapeIsutKIlbWEcCsvhQQGtdaypYZigAkeelFBO8p0/zk6MmuQczjn77H12Pq+1XDlnn/3wzTac7/49m7sjIiJDW0XUAYiISPSUDERERMlARESUDEREBCUDERFByUBERFAyEBERlAxERAQlAxERAaqiDiBXo0aN8vr6+qjDEBEpKxs3btzl7qOz7Vc2yaC+vp4NGzZEHYaISFkxs/Zc9lM1kYiIKBmIiIiSgYiIUEZtBv05fPgw27dvp7OzM+pQiqK6uprx48czbNiwqEMRkSGmrJPB9u3bqampob6+HjOLOpyCuDu7d+9m+/btnHrqqVGHIzGSSqW44447mDdvHrW1tVGHIwlV1tVEnZ2djBw5suwTAYCZMXLkyMSUcqR4WlpaeOGFF2hpaYk6FEmwsk4GQCISQY8k/S5SHKlUitbWVtyd1tZWUqlU1CFJQpV9MhBJspaWFrq7uwHo7u5W6UBCE3oyMLNXzWyrmT1nZhuCbbVm1mpmLwc/Tww7jmJZvXo1l1xySdRhyBCxatUq0uk0AOl0mlWrVkUckSRVqUoG09z9DHdvDN7fBPzW3T8I/DZ4n3g9/6hFcjVt2jSqqjL9PKqqqpg2bVrEEUlSRVVN9DlgSfB6CfD5sC701ltv8ZnPfIbTTz+dSZMmsXTpUurr65k/fz5nn302jY2NbNq0iYsuuoiJEyfS3NwMZHr33HDDDUyaNInJkyezdOnS9517/fr1nHnmmbS1tfHWW29x9dVXc9ZZZ3HmmWeyfPlyAB544AFmzJjBpZdeyqc+9amwfk1JqKamJioqMv9MKyoqaGpqijgiSapSdC11YKWZOfBv7r4IGOPuOwDcfYeZnRTWxZ966inq6up44oknANi7dy833ngjJ598MuvWreO73/0uV111Fb///e/p7OzktNNOY/bs2TzyyCM899xzbN68mV27dnHWWWdx3nnn9Z537dq1fPOb32T58uVMmDCB+fPnc/7553P//fezZ88epk6dyoUXXgjAunXr2LJli7oFyhGrra1l+vTprFixgunTp+tvSEJTimTwCXfvCL7wW83sj7keaGazgFkAEyZMyOvikydP5vrrr+fGG2/kkksu4dxzzwXgs5/9bO/nBw4coKamhpqaGqqrq9mzZw9r1qzhsssuo7KykjFjxvDJT36S9evXM2LECF588UVmzZrFypUrqaurA2DlypU89thjLFy4EMh0e922bRuA/hFLQZqammhvb1epQEIVejJw947g5xtm9igwFXjdzMYFpYJxwBsDHLsIWATQ2Njo+Vz/Qx/6EBs3bmTFihXMmzevt6pm+PDhQKbo3fO65306ncZ94MuNGzeOzs5Onn322d5k4O4sW7aMD3/4w+/a95lnnuHYY4/NJ3QRIFM6uPvuu6MOQxIu1DYDMzvWzGp6XgOfAp4HHgOuDHa7ElgeVgwdHR0cc8wxfO1rX+P6669n06ZNOR133nnnsXTpUrq6uti5cydPP/00U6dOBeCEE07giSeeYP78+axevRqAiy66iHvvvbc3iTz77LOh/D4iImEIuwF5DLDGzDYD/xt4wt2fAu4EppvZy8D04H0otm7dytSpUznjjDP48Y9/zPe///2cjvvCF77AlClTOP300zn//PNZsGABY8eO7f18zJgxPP7441x77bU888wz3HLLLRw+fJgpU6YwadIkbrnllrB+JZFIvPLKK3zxi1+kra0t6lDKXiqV4oYbbojVIEIbrDokThobG/29i9u8+OKLfOQjH4koonAk8XeSZPj617/Otm3bOOWUU3p73Ul+7rvvPlasWMHFF1/MnDlzQr2WmW3s061/QBqBLCJZvfLKK70dItrb21U6KEBcpxhRMhCRrBYsWDDoe8ldXKcYUTIQkax6SgU92ttzWlZX+hHXKUaUDEQkq/eO8znllFMiiqT8xXWKESUDEclq7ty5g76X3MV1ihElAxHJauLEib2lg1NOOYWGhoaIIypfPVOMmFmsZico62Uv3+sH132PvW/0O5g5L8efdBL/8I8/GfBzd+fcc8/l5ptv5tOf/jQADz/8MPfffz9PPfVU0eIQiYO5c+f2/ieFieMUI4lKBnvfeIOZf3ypaOf7H1k+NzOam5uZMWMG06ZNo6uri5tvvlmJQBJp4sSJLFu2LOowEiGOU4yomqhAkyZN4tJLL+Wuu+7i9ttv54orrmDixIksWbKkd+TzN77xDbq7u0mn08ycOZPJkyczadIk7rnnnqjDFxEBElYyiMqtt97KRz/6UY466ig2bNjA888/z6OPPsratWupqqpi1qxZPPTQQ0ycOJFdu3axdetWAPbs2RNx5CIiGUoGRXDsscfyla98heOOO47hw4fzm9/8hvXr19PYmBkBfvDgQU4++WQuuugiXnrpJb797W9z8cUXa7EbEYkNJYMiqaio6O0u5u5cffXV/PCHP3zfflu2bOHJJ5/knnvuYdmyZSxatKjUoYqIvI/aDEJw4YUX8vDDD7Nr1y4Adu/ezbZt29i5cyfuzowZM7j99ttznk5bRCRsiSoZHH/SSVl7AB3p+fIxefJkbr31Vi688EK6u7sZNmwYzc3NVFZWcs011+DumBl33XVXEaMVEYDm5uZBJ9Lr6OgA6F2Yqj8NDQ3Mnj276LHFWaKSwWBjAsJ22223vet9U1NTv32IteiNSLQ6OzujDiGWEpUMRESyPdH3DJrTzKvvpjYDERFRyUAkaqrjljhQMhCJOdVxSykoGQTS6TQ7duxg3LhxvXONi5SC6rglDtRmEEilUnR2dsZmPVIRkVJK1CPw9Td9n52pN4/4OHeCZegcMKqqqjCD0bUnsvDOHw16rJlx3XXX8ZOfZLq1Lly4kAMHDryvq6mISJwlKhnsTL3J62POK94JX3866y7Dhw/nkUceYd68eYwaNap41xYRKSFVExWoZ1bSn/70p+/7rL29nQsuuIApU6ZwwQUXvG9RcRGRuFAyKIJrr72WBx98kL17975r+5w5c7jiiivYsmULl19+Od/61rciilBEZHBKBkUwYsQIrrjiivctVrNu3breKSlmzpzJmjVroghPRCQrJYMi+c53vsPixYt56623BtzHzEoYkYhI7pQMiqS2tpYvf/nLLF68uHfbxz/+cR566CEAHnzwQc4555xBz5FOp3nzzTfVvVVESi5RvYlG156YUw+gIzrfEfje977Hfffd1/v+nnvu4eqrr+buu+9m9OjR/OxnPxv0+FQqxeHDh2lpaWHOnDl5xSwiko9EJYNsYwLCcODAgd7XY8aM4e233+59X19fz+9+97uczpNOp9m3bx8A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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Grouped boxplot 分组箱图\n",
    "# x日期，y餐费，hue自组列，palette调色盘\n",
    "sns.boxplot(x=\"day\", y=\"total_bill\", hue=\"smoker\", data=df_tips, palette=\"Set1\");"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 5. 箱图的顺序设置 Control order of boxplot"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#如果您按特定顺序设定组，则箱图通常会提供更多信息。这对seaborn来说是可行的。 \n",
    "# specific order 通过order自定义组\n",
    "p1=sns.boxplot(x='species', y='sepal_length', data=df, order=[\"virginica\", \"versicolor\", \"setosa\"]);"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 中位数由大到小排列\n",
    "# Find the order 设定中位数\n",
    "my_order = df.groupby(by=[\"species\"])[\"sepal_length\"].median().iloc[::-1].index\n",
    "# Give it to the boxplot\n",
    "sns.boxplot(x='species', y='sepal_length', data=df, order=my_order);"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 6. 添加散点分布 Add jitter over boxplot"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYYAAAEKCAYAAAAW8vJGAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzs3Xl8XNWV6PvfqiqVqjTPsgZbnmdjGwsbB0MYQogxxt0B0gRoIAmdcNMJ3Z10Xnffvp/O0Ldfp98n9yYh6QyEMZCExCRgIEBwcABDPMnYxhO2ha1ZliXZmqUa9/ujymWVqowlo9KRVOvLRx90dp3aWuWya+mcvffaYoxBKaWUOstmdQBKKaXGF00MSimlomhiUEopFUUTg1JKqSiaGJRSSkXRxKCUUiqKJgallFJRNDEopZSKoolBKaVUFIfVAVyMgoICM336dKvDUEqpCWX37t1txpjCC503IRPD9OnTqaqqsjoMpZSaUESkdjjn6a0kpZRSUTQxKKWUipLwxCAi/yAiB0XkgIj8SkRcQx5PFZFfi0i1iOwQkemJjkkppdT5JTQxiEgZ8ABQaYxZDNiB24ec9jngjDFmNvBd4L8SGZNSSqkPNha3khyAW0QcQBrQNOTxDcAT4e+fAa4TERmDuJRSSsWR0MRgjGkEvgPUAc1ApzHm1SGnlQH14fP9QCeQP7QvEfm8iFSJSFVra2siw1ZKqaSW6FtJuYSuCGYApUC6iNw19LQ4T43ZVs4Y85AxptIYU1lYeMFpuEoppS5Som8lfQw4YYxpNcb4gN8BHxlyTgMwFSB8uykbOJ3guJRSSp1Hohe41QGXi0ga0A9cBwxdmfY8cA+wDbgV2GJ0I2ql1BhqbGzkrbfewuv1smLFChYuXGh1SJZKaGIwxuwQkWeAdwA/sAd4SES+BVQZY54HHgGeFJFqQlcKQ2ctKaVUwvT29vLzn/8cr9cLwPHjx7n77ruZMWOGxZFZRybiL+eVlZVGS2IolZwefPBBqqurR60/p9NJZmZmVFt/fz99fX2j9jNmz57NAw88MGr9XSwR2W2MqbzQebryWSmV1ILB4LDaksmELKKnlEpeifjN+/e//z27du1CRJg+fTqf/vSncTqdo/5zJgq9YlBKJb1169bR0dHBmTNnuOeee5I6KYBeMSilFKC3jwbTKwallFJRNDEopZSKoolBKaVUFE0MSqlJbWBggKHrtbxeL4FA4ILPNcbg8XgSFdq4pYPPSqlJqbOzk40bN9LY2EhOTg5/8Rd/QXl5Oc8//zz79+/H6XRy7bXXsnLlSv785z+Tm5uLiLBp0ybWr19PTU0NmzZtoquri2nTpnHrrbfGLISbrPSKQSk1Kb3yyis0NjYC0NHRwbPPPsuuXbt49913I1cCL7/8MkeOHGHz5s3YbDZEhL1797J7925+97vf0dXVBUBdXR2bN2+28uWMKU0MSqlJqbm5Oeq4s7OT+vr6mPPildeor6+nt7f3A/ubzDQxKKUmpZkzZ0YdFxcXM2/evKg2u93OsmXLsNmiPwrnz59PXl7eB/Y3mekYg1JqUrrhhhswxlBdXU1xcTFr164lPz+fjo4O9uzZg8vl4tprr6WsrIzbbruNX/ziF4gIn/jEJ1i4cCGFhYW8/PLLtLa2MmfOHK677jqrX9KY0cSglJqUUlNT2bBhQ0z7VVddxVVXXRXVlp+fj9/vR0SYMmUKAIWFhdx9991jEut4o7eSlFJJrb+/n0cffRSXy0VqaipPPfVU3LGIZKKJQSmV1I4dO8bAwEDk2BjDgQMHLIzIepoYlFJJLSsrK6YtWdYrnE9CE4OIzBORvYO+ukTk74ecc7WIdA46598SGZNSSg1WUVHB4sWLI8clJSVUVl5wk7NJLdF7Ph8BlgGIiB1oBJ6Nc+pWY8xNiYxFKaXiERFuueUW3nrrLUSEf/u3f0NErA7LUmM5K+k64H1jTO0Y/kyllBqWs7WTkj0pwNiOMdwO/Oo8j60WkX0i8rKILBrDmJRSSg0xJolBRJzAzcDGOA+/A1QYY5YCPwCeO08fnxeRKhGpam1tTVywSimV5MbqimEt8I4xpmXoA8aYLmNMT/j7l4AUESmIc95DxphKY0xlYWFh4iNWSqkkNVaJ4dOc5zaSiEyR8E09EVkZjql9jOJSSik1RMITg4ikAdcDvxvUdr+I3B8+vBU4ICL7gAeB283QXTWUUiqB3nnnHXJzc8nLy+PVV1+N2dgn2SR8VpIxpg/IH9L2k0Hf/xD4YaLjUEqpeNra2njhhRciFVa3bdtGcXExS5cutTgy6+jKZ6VUUmtoaBhWWzLRxKCUSmpTp06NWbswbdo0i6IZHzQxKKWSWn5+Phs2bCAQCBAMBrnyyiujSmQkI92PQSmV9CoqKvB6vYgIc+fOTfrVz3rFoJRKah6Ph4cffhi3243L5eKxxx5Lqv2d49HEoJRKakePHqW3tzdyHAwG2bdvn4URWU8Tg1IqqaWlpQ2rLZloYlBKJbWZM2cye/bsyHF+fn7S78egiUEplVSCwSAnTpzg5MmTQKjM9p133kl3dze9vb184QtfiFwxdHR0UF1djcfjsTLkMaezkpRSSaO3t5fHHnuM9vZQObYlS5bwl3/5l2zcuDGynefDDz/Mvffey969e9m8eTPGGFwuF3fddRdlZWVWhj9m9IpBKZU0duzYEUkKAPv372fnzp0cPnw40nbq1Cm2b9/Oli1bIjWTBgYG+NOf/jTm8VpFE4NSKmkMnn10VkdHR0xbd3c3fr8/qq2npydhcY03mhiUUknjkksuiVq8lpGRwerVq6NmIYkIK1asYMaMGVHPTaaiejIRy8tWVlaaqqoqq8NQSk1Ax48fZ+/evbhcLlavXk1ubi7t7e185zvfQUT4whe+QEVFBQMDA2zbto3W1lbmzp3LsmXLrA79QxOR3caYC0650sFnpVRSmTlzJjNnzoxqO3nyJCkpKYgItbW1VFRU4HK5uOaaayyK0lp6K0kpldROnz7Nb3/7W+x2OzabjT/96U8cPHjQ6rAspYlBKZXU6urqYnZsq6mpsSaYcUITg1IqqZWWlg6rLZkkNDGIyDwR2Tvoq0tE/n7IOSIiD4pItYi8KyKXJjImpZQarKioiE984hMEg0GMMVRWVibVDKR4EpoYjDFHjDHLjDHLgBVAH/DskNPWAnPCX58HfpzImJRKBGMM+/fv56WXXmL//v1Jv5n8RLNq1SrOnDnD6dOnWbduXWT/52Q1lrOSrgPeN8bUDmnfAPzchP4lbReRHBEpMcYkd0F0NaFs2bKFt956C4Bdu3bR0tLCxz72MYujUurijGViuB34VZz2MqB+0HFDuE0Tg0qIBx98kOrq6lHtMzc3N+q3zK1bt/L888+P6s+YPXs2DzzwwKj2qVQ8Y3K9JCJO4GZgY7yH47TFXIeLyOdFpEpEqlpbW0c7RKU+FL11pCaTsbpiWAu8Y4xpifNYAzB10HE50DT0JGPMQ8BDEFr5nIggVXJIxG/de/bsiVwhGGPYsGEDl16q8yjUxDRWIyyfJv5tJIDngbvDs5MuBzp1fEFNNMuXL+dv/uZv6Ovro7OzU5PCOGaMobm5mTNnzkS122w27HZ7VFtfXx8NDQ0EAoGxDNFyCb9iEJE04HrgC4Pa7gcwxvwEeAm4EagmNGvpM4mOSanR9v7777Nx40bS0tJwuVxUV1dH7Qqmxof+/n6eeuopmppCNyUqKytZt24dmzZtIjc3F4BHHnmEu+66i4MHD/LSSy8RCATIyMjgrrvuori42Mrwx4wW0VNqFPz3f/83bW1tkeO8vDy+/OUvWxiRtRIxwD8a3G53zH7O3d3dkU16zurt7SUtLS2qEqvX66W7u3tM4hyJkUxK0CJ6So2hoTX9Ozs7LYpkfKiurmbPwT2QY3Uk0RaUL4hJDGcGzsQkhk5PJ+np6VFt3oCXPY17Eh7jiMRuJTEqNDEoNQoWL17M3r17I8eLFi2yMJpxIgeCVwetjiLKSd9JyrrPbc/pFS81s2so6SohxaQAYDA0VDTg7neT68+NnNuc1zzuXo/t9cQME2tiUGoU3HjjjWRlZfHaa6/h8/m46aabrA5JxdGe0s7ejL2UecrwiY8aVw0D9gGqMquYPjAdh3FQn1pPR0oHe+17mdk/k4xABq3OVupS66wOf8xoYlBqFPh8Pjo6OiIzW7xeLykpKVaHpeJwB9y4A24cNgdO4wQgNZgaasOBO+gGwGfzcST9iJWhWia5C4IoNUqef/553n33Xex2O6mpqWzatMnqkFQcUzxTmNc/j4xgBrn+XJZ3LyfTl8mynmXkBHLICGSwoG8Bhd5Cq0O1lCYGpUbB0Bk443FGjoJ8X37UsR07Zd4ybEM+Coeel2w0MSg1CobOb0+W+e4TTY+9J6at3dE+rPOSiSYGpUbBTTfdFFkgFQgEWL9+vcURqXjqXfW0pLRgMPjxc9R9lNbUVo65jxEggMHQ7GymMbXR6lAtpYPPSo2Q3+9n//79dHZ2smDBAoqLiykpKWHt2rU8/PDD+P3+yA5gp06d4tChQ2RlZXHJJZfgcOg/ubGU48sh35dPj6OHlpQWghLkaNpRejw9+MRHoyuUAOpT6wkQIMWk0JjaiBEDBqZ4p5AeSKfN2UanozNun3HLgE5w+rdUqRF6+umnef/994FQee277rqLhoYGtmzZElk89cYbb1BRUcGTTz5JMBia+37gwAHuvvtuy+JONqWeUhb3Lo4c16fWU59az8qulTjCH31l3jJ2Zu5kZddKMoIZAEzzTGNH1g5m9M+gzBta8zBzYCbvpr+LHXtMn4fTD4/hqxobmhiUGoFTp05FkgJAMBhk586d1NZG7z+1fft2WlpaIkkB4MSJE5w8eZIpU6aMWbzJrGKgIuq4zFOGMSaSFAAyA5lMH5geSQoAKSaFqQNTKfWe2/dZEKYPTI8ZpC7zlHE07SgBmVxF9nSMQakRiLflo81mi2mP13a+56vEMEO2dTHh/y503vnODUowbp+Tkf4tVWoECgoKWLBgQeTY4XBw+eWXc+WVV0add+WVV7J69eqoMYV58+ZRVFQ0ZrEmuxOuE1Ef3HWuOurd9fjEF2nrsHdwwnWCLntXpM0rXupcdTSkNkTaggSpcdXE7XOyXS2A3kpSasRuvfVWDhw4QFtbG8uXLyc3N5epU6cyZcoUfvSjH+Hz+bj88ssB+Nu//Vvee+89srOzmTdvnsWRJ5eW1Ba22beR78un29HN6ZTTALyd/TbF3mJ84qPF2YIRw86snRR7i7EbOy3OFnw2H++lvUdrSisZgQzanG302nsB4vY52Qw7MYjIXOBrQMXg5xljrk1AXEqNW1VVVWzevBm/3091dTV33HEHp0+f5plnniEtLY1gMEhtbS0VFRXk5OREkoQaez2OHnoc0WsSvDYv9a76qLagBGlOHbI/mEC7s512otc5xOtzshnJFcNG4CfAz4DJd+2k1DD09PTwhz/8ITKo3NzczJtvvkldXR09PaEPC5vNxu9//3u++MUvWhmqUhdtJInBb4z5ccIiUWoC6OjoiJppBNDe3h61Sc/ZNqUmqgsOPotInojkAS+IyBdFpORsW7hdqaRRUlJCVlZWVNu8efOYP39+VNvQY6UmkuFcMewGDOfW931t0GMGmPlBTxaRHOBhYHH4/M8aY7YNevxqYBNwItz0O2PMt4YTvFJjzW63c9ddd/H666/T0dHBokWLuOyyy1i6dClpaWls27YNv9+vJTHUhHbBxGCMmQEgIi5jzMDgx0TENYyf8X3gFWPMrSLiBNLinLPVGKM7m6gJobCwkNtuu83qMNQFiBFm9c+iwFdAt72bY2nH8Nq8lHpKKfeU4xMfx93H6XR0kuPLYebATOzGTkNqA82pzaQGUpnTPye0UU9KK8fdx0OlMpLASMYY/gxcOoy2CBHJAq4C7gUwxngB78hCVGr8e+GFFzh48CAOhwOHw8ELL7ygycNic/vmUuEJrX7OCmSRFkyjxlUTVdIi15fL9qztrOhegR17qM2fi8fmYW7fXLICWZHnC0J1WnKUU79gYhCRKUAZ4BaR5Zy7pZRF/N/+B5sJtAKPichSQrel/s4Y0zvkvNUisg9oAv7RGHNwBK9BKcu99957H3icbBoaGqAzcXsSD0fhvEJIPXec68/FU++Bc9s448BBxfsV2AvtUc8trS0lKy96LKmoo4jjO48nMuSR64AG03Dh80ZoOO/aDcB3gHLg/wL/J/z1FeB/XuC5DkJXFD82xiwHeoF/HnLOO0CFMWYp8APguXgdicjnRaRKRKpaW1uHEbZSY6egoCDqOD8/uTd6GQ/6vH1Rxx6fh+6B7pjzOvo7Ytp6+nvw+X1RbX2evpjzJqvhjDE8ATwhIrcYY347wv4bgAZjzI7w8TMMSQzGmK5B378kIj8SkQJjTNuQ8x4CHgKorKxMjht9asK48cYb2bhxIz09PQSDQdatW2d1SJYqLy+nVVoJXh288MkJciRwhLTuNNKCafjEx6HcQ5wuOk1edx75/vxImYvmZc1k9mUybWAaNmy0prRSt7iOfm8/C/sWkmJS6LX1cnTaUYIzrHs98dhet1FeVj7q/Y5kjKFCRL4ypK0T2G2M2RvvCcaYkyJSLyLzjDFHgOuAQ4PPCd+qajHGGBFZSegqRieBq3ErGAxy5MgROjs7mTdvHrm5uUybNo3bbruN//7v/8bn81FRUXHhjlRC9dp72Zu+lxJvCWdSztDmDP2uuT9jP+UD5XhsHppSmwCodlfTZ+sjJZhCg6uBoARpcbYQJEi2P5vm1Gb67KErhgx/hpbEGKQy/PVC+HgdsAu4X0Q2GmP+v/M878vAL8Izko4DnxGR+wGMMT8BbgX+h4j4gX7gdmOMXhGoceuZZ57h8OFQDf7XXnuNu+++m6amJl555ZXIfgzbt2/XUhgWK/YUc0nvJQjCDM8MTrhO0JjayKquVaSYFCBUNntX5i5Wdq+MDDRXeCrYnrWd6QPTmeaZBsB0z3T2ZezDZmyRPiFUqO9Y2jFrXmACjSQx5AOXGmN6AETk64RuDV1FaFA5bmIIX01UDmn+yaDHfwj8cARxKGWZtra2SFKA0G5u27dvj9mPYevWrZoYLDZjYEbkAxwI3SoK2iJJASAnkMOMgRmRpADgNE6mDUyj3HPuFo0NG9MHpmM39pg+j7uPT7oKqyOZMjCN6KmmPkKDxv2AZ1SjUmqcGloO42zb0PZ456mxJUP23JTwfxc673zn2owtbp+T0UgSwy+B7SLy9fDVwtvAr0QknSHjBkpNVkVFRcyaNStybLPZWLlyJatXr446T68WrFfrir6Ka0xtpN5Vjx9/pK3b3k2Nq4Ye27lqqT7xUe+qp8nZFGkzGGpcNXH7nGxXCzCCW0nGmH8XkZeBKwitZbjfGFMVfvjORASn1Hh0++23s2/fPtrb21m6dCnFxcXMmDGDKVOm8Mgjj+Dz+fjoRz8aOb+3t5fU1NSoTXvU6BMjpJgUvLbQjY2m1Cb6bH0UeYvodHTS4mwBgW3Z2yj1lOITH42u0Af7zqydlHnKcBgHjamNDNgHOJh+kPaUdrL8WbSkttDp6ASI7XMSGunf1D2EFqE5AERkmjGmbtSjUmocO3jwIH/84x8ZGBigubmZT33qU3R0dPDyyy/jdrtxOp00NTWRm5vLxo0bOXHiBC6Xi49//OMsX77c6vAnpQJvAYt6F5FqUum0d7IvYx+CML9vPlmBLAa8A/hsPjocHcztm0uRr4ggQWzYqHHXMNUzlZn9M7FhIy2YxoH0A+T78pnXN49Uk0quP/e8fU7GmUkj2ajny8DXgRZC+zEIoaJ4lyQmNJXsHnzwQaqrx1cJAhEhNzcXkdC95ZqaGr75zW+SkpISuSKw2+38+Mc/xufz4Xa7ARgYGGDTpk08/vjjjLdJd7Nnz+aBBx6wOoyLJkZY3LsYp3ECkB3IZk7/HOzGHhlUdhkXi3sWU5taS7GvGAA7dub2z6XP1sec/jmR/kq8JZyxn2H2wOxh9flmzptMtqGGkVwx/B0wzxijawzUmKiurubogXeYljF+7uE603OQvOjxA/H1Yk+NrkBvt9vw9/ZCODFAKKkETh3F2xu70tYqdT32C580zqUGUyMf4GdlBjKxm+jX5jKuqNlHZ+X5Y3cPyA5kD7vPFJMStY/0ZDCSxFBPaEGbUmNmWkaA/1U5frZR9Js+NjLAAOcKC6/JaqIFL/WURtqmSgul2afYyblSGal4+Mr8JhwyfmYs/e+qDKtD+NAGbAP02HrICJ57LW2ONuzYmeqZGmnrsnfR6mylxFcSaQsQoNHZSLmnHNuguTinUk6R7c8eVp8+2+RKCjCyxHAceF1Efs+g6anGmP876lEpNU45JMj15i12s4Qe0phBA4s4yhxq2MlSWsiniHZWsQ8nXrykcJyppNNHJQfGVVKYNAT2Zu5lbt/cSIns6rTqyFTSfF8+3fZujqQdYcA+gNM4KR8ox2fz8b77fbpTutmTsYdZ/bNw4KA+tZ7W1FZ6Hb3D6nMyGkliqAt/OcNfSiUlF14yCBUIzqAXm4DD+Mmglz7cZNCHgwA2geUcYnmyzubuGLvqqgMM8C7vRrUZDEeI/uC2YcOT5WEgbwBfwIfvlA+bx4bP5WMgdwC73Y6n04Ot2zaiPi3TQaj29SgbyXTVbwKISHqcstlKJYWggVe4im5CtxiaKAYDLRRQzXQAmimilzSuYpeFkVpr9uzZVocQV0pKStTWrMXZxXR0dJCTk4PNFvqAL8gtoKurC7/ff75uxo+yxPxZj2RW0mrgESADmBbeX+ELxpgvjnpUSo1T7eRGksJZJyinhYKYtmRODON1ltPzzz/Pnj17Isc2m41PfOIT7Ny5M9ImInzsYx/jxhtvtCLEcWEk10DfI7Q3QzuAMWYfoTpJSiWNdPoRoscJMugjg76YNjX+ZGdnx7QVFRXFtOXk5IxFOOPWiG6OGWPqhzSNn3mESo2BNBlgOYciySGTbpbyHqvYSwqh2Skp+LicuJXolcVWrlxJaem52WOXXXYZK1asYNmyZZG28vJyVqxYYUV448aIpquKyEcAEy6h/QBw+ALPUWpC8xsbDYSmN5bTjEOCXMJ7ZNHNGbKZx/uki4cM+viEeYMayqigkUIJrVUYME7qKSGdPkpoRSbZQqiJxu1289d//dfs3LmTzMxMli5dCsD69evZunUrNpuNu+66i9TU1Av0NLmNJDHcD3yf0Bh4A/Aq8LeJCEqp8cBn7LzItXQQuv2QTRc3mS3sYFlkoPkQc1hr3qCdHN5mBSDsZz4fMe9QyGle4mp8hMo8z6I2qccdxoOOjg4eeeQRenpCa2MOHDjAHXfcwc9//nMyMzMB+NGPfsR9990XOU5Gw76VZIxpM8bcaYwpNsYUGWPu0lXQajI7wdRIUgDoJItDzI4kBQAfKexnLntYyLm6CMIeFrKfuZGkAPA+FXSaib+gbCLbtWtXJCkAHD9+nG3btlFXd67kW1dXF7t377YivHHjglcMIvIDQjWR4jLGjM/pB0p9SL44/zy8gz7oz/LjwD/k3Hht5+tTjR2v1xvT1t/fP6zzkslwrhiqCO3Qdr4vpSalGdSTOmgPqlQ8LOYYRbRF2gTDPI4zn/ejnjuf95nPcWTQ71SFtFMg46dOUjK69NJLsdvP1TvKy8vjiiuuiJqt5HA4ogajk9EFf30xxjwxnI5E5AfGmC/Hac8BHgYWE7ry+KwxZtugx4XQ2MWNQB9wrzHmneGFr1TipImHm81rHGEGBpjHCdJkgI+brRxhJj2kM4N6iqWdcnOSXDo5SSHFtDGTekTgRvMnjjOVDPqYxwmrX1LSKykp4W/+5m/Yu3cvbrebyspK0tLSuO+++/j3f/93RISvfvWrFBYWWh2qpUbzuvaK87R/H3jFGHNreDZT2pDH1wJzwl+rgB+H/6+U5Y4xnUOESjLbgEs5SBPFHGQO/bjpw0We6aQXNweYRzu5tJJHPh2kmz4OMJc6ynAzQAZ9TKfR2heU5AKBADt27GDfvn2kpqaSnp7OihUrOHjwIC6XCxFh586drF27NrISOhkl9IaniGQRWgR3L4Axxkv0vtEAG4Cfm1CR+u0ikiMiJcaY5kTGptSFNJoi9rIwcryPBeSaDt7issj4QS3lZNFDCwW0kwvAaXJ5i0pKOEUtoQ3l+3DzJpdRYk6ROslKNE8ku3fvjqx87u/v58UXXyQrK4tXXnklkgiqqqooLS1N6k2VEp0SZwKtwGMiskdEHg7vET1YGaGS3mc1EKcslIh8XkSqRKSqtbU1cRErFXb2g36wJopjBpXbyKNtyLlt5Ma0BXBwhtiVt2rsNDU1xbQdPXp0WOclk9FMDPGW7jiAS4EfG2OWA73APw/jeTGzoIwxDxljKo0xlcl+/0+NjeJBg8xnTacB55CL3imcYgqtQ9paKRnS5sRLPmdGP1A1bNOnT486ttlsLFmyJLIj3/nOSzajmRi+H6etAWgwxuwIHz9DKFEMPWfqoONyQvtKK2WpYmlnNbvJoIcMelnNO5TJKa7jz+RzmlQ8LKCaJRxhDVVMpQknXsppZg1VLOIoCziGiwHyOcN1/JkU0SoyVlq6dClXXXUVGRkZFBYWcttttzFt2jRuueUW/H4/wWCQa665hkWLFlkdqqWGs47hBT54HcPN4f8/HuexkyJSLyLzjDFHgOsgpjj988CXRORpQoPOnTq+oMaL+XKC+UNmE2XTTQmt9NDLFFqxi8FtPEyhFRtBCjlNGgPYxHA5+7icfRZFr4YSEa655hquueaaqPYpU6bg9/sRESoqKiyKbvwYzuDzdz7kz/gy8IvwjKTjwGdE5H4AY8xPgJcITVWtJjRd9TMf8ucplTAmvB/D2RXRNUzlo2YHLeTzHqG6+LWU00UGV6CzrieCgYEBHn30UVyu0HatTzzxBJ/73OcoK0vADjgTxHDWMbzxYX6AMWYvUDmk+SeDHjdozSUVR0NDA73d9nG1L3FKWhZFC6IHkP/QORNnRi62QfvEHwlW8Kc9sYOa401tt530hgarw7DUsWPH6Os7VybdGMP+/fs1MQyHiMwB/hNYCOd2QjfGzExAXEqNS0FxaQSeAAAgAElEQVSfF2NM1GBlwOch6PNgszui2tTEkJER+4tHevrQyZPJZSTrGB4Dvg58F7iG0C0fLSKsEqa8vJwBfzP/q7LnwiePmR52maMcYB4Abvr5ZMEBOsjiDVYRwI6NANen7mP6uIo7vv9dlYGrvNzqMCw1ffp0FixYwOHDoV0EioqKqKwcepMjuYxkVpLbGPMaIMaYWmPMN4BrExNWcgoEAlRXV1NbW0voDpsajy6T/VzD2yzlIH/BZrKlhwppYh1buIRDrGML0yW0wtln7NSaEtpNcu8INp74/X6OHj1KfX1o+ZSI8KlPfYru7m56e3u57777cLvdALS1tXH48OG4hfYms5FcMQyIiA04JiJfAhqB2D3x1EXp6+vj0Ucfpb09VMl81qxZ3HnnnTHzq5X1tpulHA6XyXiP2dxoXucM2bzBSgw29jOfq8wu8jnDS1zNQPjO63xTzWrRnd2s1N3dzaOPPkpHR6iY4YIFC7jtttv45S9/Gdl/4ac//Smf/exn2b17N1u2bAHA6XRy5513Mm3aNMtiH0sjSQx/T6jO0QPAvxO6WrgnEUFNBA8++CDV1dWj1p/L5Yq6r/n+++/zj//4j/h8o1c+Yfbs2eN2k/aJotukcTg8+wjAQyrvMp8WCjDhC3CDjSqWUMKpSFKAUBJZZI6RJb1jHrcK2blzZyQpABw+fJjt27dH/Vtub29n+/btbNsWqfWJ1+vl9ddf5+677x7TeK0y7MRgjNkFEL5qeMAY052wqJJQvIJderUw/nhwMnRozYMz3P7Bbeeer4nBKoNnH53V1dUV09bT04Pf749qS6bbSSOZlVRJaAA6M3zcSaiEdlLuyTDav3mfPHmShx9+mEAgtDI2PT2df/qnf4rMrVbjQz4d5HGG04PqIM2hhix6IlVYz7aVcIp6zm08n0sHBVoSw1LLli1jz549kTG8rKwsrrjiCvbv309vbyhh22w2LrvsMrq7u6OuJJKpqN5IbiU9CnzRGLMVQETWEEoUlyQisGQzZcoUPvOZz/DDH/4QYwwPPPCAJoVxSARuMFs5zGx6SGMGDZTLSaaZRrLppoV8imhnHsexCVxvtnKCqaTTx0Kq0YtAa02dOpV77703sh/DqlWryMjI4L777uPb3/42IsKXvvQlSkpKuO2229i5cyetra3MmTOHxYsXWx3+mBlJYug+mxQAjDFviYjeTroIAwMDvPjiixw5coTCwkLWrVtHaWkpR44cwel0YoyhtraW3NzY6p5qbB00s9nPfAAWc4TFcozT5FBDGT2kIximmNBYQg1lnKKAPtyUcxK3GaCWMmooJ50+immnjJa4faqxM23atJhB5NraWpxOJyLCe++9R2lpKU6nkzVr1lgUpbVGkhh2ishPgV8Rqp30V8DrInIpgO66Nnx//OMfOXjwIADNzc385je/4brrrmPr1q2RsYZNmzZRVlaW9DtJWemkKWAn57Z43MVSsk0Xb3A5vvDez8eYQTr9tFBAc3iS3kmK2MpllHKKo4TWf3aSxRYu52qzPabPfNNBiWgpeau0t7fz3HPPRbb8fOuttygqKmLJkiUWR2adkSSGs3+bvz6k/SOEEoWuaRimurq6qOOurq64M5zq6+s1MViohYKYtlrKIklh8HlDzz1FAXaCUW1+UqiL3WqEFgpiSnSrsXN2PcNgdXV1mhiGwxhzzYXPUsNRXl7O4M2GMjIymDlzJvv37485T1mniPaYtqk0U8PUqORQSDtBhBYKo9qKaKeJ4kibAz9TaYpcRXzQz1FjJ96/s2T/tzfslc8iUiwij4jIy+HjhSLyucSFNnldf/31zJs3DxGJ1IRfunQpH/nIRzDGEAwGWbduHUVFun7QSiXSygr248SLEy+XcoAKaeaj7CCTHmwEmUktS3mPNVRRRBtgKKKNK9nFEt5jFrXYCJJJD1ezg2lyMqbPUjll9UtNagUFBaxfv55gMIgxhtWrV3PJJck9p2Ykt5IeJzQL6V/Dx0eBXwOPjHJMk57b7eb222+Pab/++ut54YUXAJK+Vst4UUEjA6QCod3bIPQb/hxqIrOSHBIg0/Qyhxqy6aaIdjLpRQRmmxrsBEinL5w44veprDV79mwGBgYQkbg7uiWbkSSGAmPMb0TkXwCMMX4R3Y5KTV69xsWLXIs3vFDtKDP4C/Mqf2I1beSF22ZyrXmbUxRECusdYwYdZFFiWvkjH+Hsgrg6yrjWvB23zwxJnsVT443H4+Hhhx8mLS0NgEceeYT77ruPKVOmWByZdUaSGHpFJJ/wbm4icjnQmZColAqr67FuP4b0ogpypp5bvewjhUdbFpJZnBd13ksdc3BmRu/HsD8wk6rubNw5537zbCeXR1sWkVkc3efDDbPoaalJ2Ov4IHU9duZa8pMv3miXo3E6nZE6SRAqZvm9730v7irpizXRytGMJDF8hdA2nLNE5G2gELg1IVEpRegfk5UcqakxbbaM2HEfcWdH6iSdZRDElR1zbrzn23PKcbmtmX02F+v/nK0Wr5Jxslc3HklimAWsBaYCtxDan3kkz1dqRKz+Dcvn8/HYY4/R3Bzagvzs6vRXX32V3btDlWBcLhf3338/LS0tPPfccxhjMMZwyy23UFJSwuOPPx6psbN8+XLWrl0bt0+nM7aukopvtP9eGGN48sknOXEitLd3Tk4OX/3qV+Nu4JMsZLiZUUTeNcZcEi6F8f8C/wf4n8aYVRd4Xg3QDQQAvzGmcsjjVwObILLj+u+MMd/6oD4rKytNVVXVsOIer3w+H42NjeTl5ZGVlQWE/oJ+9atfxRjDd7/7XYsjVADBYJBdu3ZhjGHlypWRBYiHDx+mpaWFyy67LFIVt7m5me9973t4vd7I+9fb20tVVRWFhYUsXLjwA/tU1jHGUFNTg8fjYfbs2Tgck/N3XhHZPfQzOJ6RvPqzA83rgJ8YYzaJyDeG+dxrjDFtH/D4VmPMTSOIZUI7efIkTz75JH19fYgIN9xwA0uXLuXJJ58kOzt0++GZZ57hlltuSfrZEVYKBAL88pe/5Pjx4wAcPXqUO+64g61bt/Lmm28CsHfvXu655x5aW1t55plnSEtLw+12c+TIEYqLi3n88cfp7AwNxa1Zs4arr746bp+T9YNoohARZsyYYXUY48ZI/jY2hktifAz4LxFJZWQ7wKmwLVu2RAa2jDH88Y9/xOPx0NTUFDnn4MGDXHrppcycqVtqW+XQoUORD3CAEydOUFVVxdatkZJhdHZ28uabb1JXVxfZO0NE+MMf/sCMGTMiSQFCpRbS09Nj+jx48CBLly4dg1ek1PCM5IP9U8AfgE8YYzqAPOBrw3ieAV4Vkd0i8vnznLNaRPaJyMsisijeCSLyeRGpEpGqwauGJ6Lu7ujag36/nzNnYssxDz1Pja14dfpPnz4dMzDZ3d0d8151dXXFff9Onz4d06bvsxpvhp0YjDF9xpjfGWOOhY+bjTGvDuOpVxhjLiU0cP23InLVkMffASqMMUuBHwDPnefnP2SMqTTGVE70+kFDa7BMmzaNFStWRN02crlczJkzZ+hT1RhasGBB1C0eh8PBypUrKSiIrou0ZMmSmPc0XlteXh4rV66M6XPBggUJiF6pizfswedR+WGhMYkeY8x3PuCcGqDyg8YkJvrgszGGd955h6NHj1JQUMCaNWtwu92cOHGCn/3sZxhj+Id/+ActiTEONDY2smPHDgBWrlxJeXk5XV1dvP3223R2drJo0SKWLFmC3+9n27ZtvPLKK/j9fv7jP/4Dh8PBgQMHOHDgAFlZWaxZs4asrKy4fSo1FhIx+HwxQaQDNmNMd/j7jwPfGnLOFKDFGGNEZCWhq5hJU1Xs9OnTvPzyy5w8eZKZM2eydu1abDYbTU1NNDU14fP56O7uxu1209zcjMPhwBhDe3s7RUVFVFdXR8Ykli9fzlVXXcWZM2di+tRNfRKjrKyMT37yk1FtWVlZrF27NqptYGAg6v3r7+8nMzOTxYsXx2zwEq9PpcaTRE+FKAaeDd8icQC/NMa8IiL3AxhjfkJokdz/EBE/0A/cbibR6pKNGzdy8uRJAN59911sNhupqam8805o+4qenh6efvpprr/+ejZv3hypCb9x40Y+85nP8PTTT0e2+3z99dfJzs5mx44dMX1u2LDBglenztq0aRPV1dWR93fTpk3cddddVoel1EVJaGIwxhwHYqZbhBPC2e9/CPwwkXFYpa+vL/IBftbx48djfrs/c+YMhw8fjmozxrBv375IUjjr2LFjcftU1jq7OOosfU/URKbTTRPI7XaTk5MT1TZlypSY4lxpaWkxWw0CcQefy8rK4vaprDX0PSgpKbEoEqU+PE0MCSQi/OVf/mVk7+aysjLWrl3L9ddfT0VFBRC6X/3JT36SSy+9lEsvvTSyH8PHPvYx5s2bx4033ojL5YqUA165cmXcPpW1br755shkAb/fz80332xxREpdvDGdlTRaJtqsJGMMXq+X1CFF2TweT2QDcggNVP/Xf/0Xxhi+8Y1vRMoABwIBAoFAVD2d8/WprPV3f/d3GGN48MEHrQ5FqRjDnZWkVwxjQETifoCnpqZGkkJbWxs//elPSUtLIz09nZ/97Gd4vV4A7HZ7TJG18/WprDURf9FSaihNDOPE3r17I4kAoKOjg6NHj1oYkVIqWWliGCfiFVHTwmpKKStoYhgnVqxYEbWLVGlpqZbEUEpZQhODRYLBICdPnoxs4pKZmckXv/hFent76enp4bOf/WxksVt3dzcTvXBgMvD5fJH3TKmJTO9VWKCtrY2nnnqKzs5OHA4HN954I4sWLeI3v/kN6enpGGN46aWXWL9+Pa+++irbt2/HGEN5eTl33nmnlr8Yh06cOMHGjRvJyckhGAxy/PhxLZmuJqxJPV11tDcNHy2ZmZlRs4yCwSD9/f2RncDO6u7ujrq9BKHV1GevMsaTibbZ+Wj70Y9+FHVVl5+fz5e+9CULI1Iq1rgoome16upq9uw/RDAtz+pQoqxenM7g2ac2m40zfd6YxHC618uQvMCZXg8HT0SXxLCarS92j4FkM3Q/jXj7ayg1UUzqxAAQTMtjYOH42jW00X6G+XREjjsCTmrSF1BmTnJ2Swa/EaozL6HENOOUYOTchoz5DCy8dKxD/kCuQy9aHYLlFi5cyLvvvht1rNRENekTw3h01JdDEKHY0Ud30MkRbw4e42DXQBHTU7oIYOOYN5te4+TP/VOYk9KJUwLU+TNpCaRZHb6KY926dWRkZPDGG2/g9/tZv3691SEpddE0MVykqY5uZqR04cfGMW8OrQE3ebYB5jnP4JQgdf4MTviycYmfhc7TZNu9tPrdHPbmEkRIkSApBHFKADuhcZ4UCeKUIH4gRUJtDgxOCeCU0LnAefuc7zxDsb2PHpPCIU8efSbFqj+epBMIBOjv70dEEJGYqrhKTSSaGC5Cob2P5a5zG8zluk7yZl8pl7tP4gh/oC+xn8Zj7MxM6SLP7gEg0+nDJgafsTHHGdokPgsfmTYfBzy5MX1u/ZB9/qmvDDi3XahKnBdeeIHDhw/jcDhwOBxs2rSJ22+/3eqwlLoomhguQrE9elaQXWB6SnfkA/ysEntv5AP8rCJ7H34TvXwk0+ajzN4X0+e0uH32DbvPNPHrVcMYGVq+5NixYxZFotSHpwvcLkJ3MPbDtj0Qu7agM5hKfzB6wVN30El3MLogntfY6BjSFuoztkheZzBl2H0OGF1sNVYKCws/8FipiSThiUFEakRkv4jsFZGYxQcS8qCIVIvIuyIyvqbcxFHnz6TRl44xEDBw1JtNUyCDQ55cAiZ066bF7+aEL4u9ngI8wdAfc3cwhYOePA55c+kMhD7IvcbGvoECav1ZMX02BzLj9Jk97D6DmvfHzE033UR2djYQGm+46abxNRNOqZEYq1tJ1xhj2s7z2FpgTvhrFfDj8P/HLYNwwJtHVzAFvxHq/FkAnPBl4TOCKzyDKICN1oCbfZ4Ccm0DNAfS6DGhD+89ngLK7L10Bp00B9IgIX2qRAgEAhw6dIiOjg4WLFhAQUEBZWVlrF+/PlIuvby83Oowlbpo42GMYQPwcxNagr1dRHJEpMQY02x1YOfjFh8fTWuKrC+oCPTwZn8JH3GfJNceKp09y9nF1v5Spjm6meXsAmAOXewZKMBnbFzmOhVZs1Dn6+eIN2fU+9zr0dsZifDrX/86Mobwxhtv8Nd//dc0NjayefNm3G43brebt956izVr1lgcqVIXZywSgwFeFRED/NQY89CQx8uA+kHHDeG2D50YGhoasPV1jvoCrFllRTjTz33oZtl9LOisIjejKNLmEMPsnv2UFeQw+I7dnGADvkAAkXOrnKc6ugm21eBML4jusyNOn93vUlaYO6w+j++vwutP/LRJW187DQ3+hP+c8aC1tTVqYDkQCLBjxw5qa2ujzvvzn/+siUFNWGORGK4wxjSJSBGwWUTeM8a8OejxePMpYwo4icjngc8DTJs2LTGRfghxK07FaRxJZSozzLMnXrUrpdR4lvDEYIxpCv//lIg8C6wEBieGBmDqoONyoClOPw8BD0GoiN5wfnZ5eTktHseol8R4X3yUmSZSw7d9ugIpvJddSX6ghdzwVFKfEY5lLMHrP3fbxxg4ZivHLzYuM4Nu+/gzOZY1lZKhfeZcFqfPS4bdZ9fctaP6us/HdehFysunjMnPslphYSFz586NTE+12+2sWrWK8vJyNm/eHDnviiuusCpEdZHa2tr45je/yTe+8Q3y8/OtDsdSCU0MErq3YTPGdIe//zjwrSGnPQ98SUSeJjTo3DmexxcA+k0Kr/eVUeboxW9sNPrTCWLj7f4plDl6cUqQRn86A8bBQW8+bQEX+fYBmvzpdARD01rf6C+jzNFNRyCV5kA6ILzeV0aFoxufsVHnz4z0OdXRQ6r4qfNnRfpsDbjJtnlpDbjpCKZG+iyy99ETTOGkDj4nzKc+9SkOHz4cGXzOz8+noqKCkpISfvrTn+L1ejUxTECPP/447733Hk888QRf+cpXrA7HUom+YigGng1veO8AfmmMeUVE7gcwxvwEeAm4EagG+oDPJDimUeExDo77sqPagtio90eXQy2097EstY1UW5Apjn529hcRQLg09RRZdh9eY4MBoSWQxpLUdkodfQQNuGwBDnvzmJXSxVxnB3Yx5Nq9VA0UEcDGqUAap4Z8+HcFnXTFWQ+hRpfdbmfx4sVRbY2NjTz33HO43W6cTif19fVMnTr1PD2o8ebFF1+ku7ubNWvWUFNTQ0tLC8XFxVaHZZmEJgZjzHFgaZz2nwz63gB/m8g4rGMiSQEgw+ZjceppfMZGlt0HgFOCLHW1ccSTQ6kjtPrZJjDH2UlnIIUFqefKNxc7+pmR0kW1L2fsX8okkoh9OrKzsyN7dNvtdh566CE6OztH9Wck+54XidLY2Mju3bux2UITOvLz83nsscf453/+Z4sjs854mK46aaUQxG2LnhWUYfPGlK9wSpBsmzfm+UNLX0Co1IUaf4Zu6albfE4c8bbNHTrLLNloYkggH3ZOB1KjPuBbAmnhK4Zzv012BVJoDKQxjZ5IW8AItb5MpqX0RNVLagm4xyb4SSwRv3X/5je/4fDhw5HjBQsW8Fd/9Vej/nPU6Iu3BeuMGTMsiGT80MSQYFUDRSx0niYrPFD8XrhENsAUe2g/hsPeXPpMCnsGCkL7MRgbR305dJtUtvVPOVfK25dJkz/D4lek4lm/fj1ut5v6+nrKy8u5/vrrrQ5JDVNWVhYbNmzgiSeewGaz0dLSwve//32rw7KUJoYECxrBhw1/+CuIYAC/OdsmkUThN7ZI+9n6SAEEPzZsBvzhRW1OAsxLPROZlXTUm4PR8tqWcrvdujnPBLZs2TJee+01nn/+eTZs2KDTVa0OYLJb4TpFoWMACI0ZOAjiMzbmp3ZE2rJtXg568rjMfSryvEJ7P2/0lfIR98lImYwCxwC+fmFmSldMnwe9yf0XWakP65577qGmpoZ77rnH6lAsN+kTg63vtGV7EjvsNgpXLIhqKzVt+ANB4FyZ7hy7l+m9hyEt99xzw+UvnOnRH/jT+o5RmB89TbbUtPH+oW2j/wKGydZ3GkiOBW5q8iooKOAHP/iB1WGMC5M6McyePdvqEAgGg5FpcAAOm2AbctsnGAySkxa7/iAvPbYt250St88Vs6z8YJ4yLv6slVKjY1InhvEw5/vQoUNs2rQJr9dLZmYmn/70p0lJSeEXv/gFHR0dpKSkcOONN7Jo0SKefvppjh8/jjGGyspKbrrpJjZv3sy2bdswxjB16lTuuOMOjh8/HtNnSUmJ1S9VKTVJSGh92cRSWVlpqqpi9vwZtzweD2fOnKGwsDAyv72trY19+/ZRXl7OvHnzAOjv7+frX/86xhj+8z//M7Jgqqenh4GBAQoKCj6wT6WU+iAistsYU3nB8zQxjL3q6mp+9atfEQyGBpVXrlzJFVdcwc9+9jN6ekJrGUpLS/nsZz+rH/pKqVEz3MQwqW8ljVdvvfVWJCkA7Nq1C4fDEUkKAE1NTRw7doz58+dbEaJSKonppsAWCASiy2QYY/D5Yktd+P3JsfmNUmp80cRggZUrV0YdL1q0iFWrVuF0npuFlJubGxl7UEqpsaS3ksaAMQaPx4PLFVq7sGTJErKysjh8+DDFxcVccskl2O127r//fr797W9jjOFrX/saKSkpQOgKIxAIRCUOpZRKFE0MCVZbW8tzzz1HR0cHpaWl3HrrrTgcDrZs2UJdXR2ZmZlkZmYyc+ZMtm7ditsdKpL3zjvvsGbNGnbu3MmWLVvwer0sWrSIDRs2RGYrKaVUIugnTAIZY3j22Wcjdfmbmpp45ZVXcLlc1NXVAdDd3c2zzz7LNddcw549ewhvasRrr71GQUEBL7/8cqS/AwcOUFpayurVq8f+xSilkoYmhgTq7++P2azl5MmTkVtKZ/X19UUSxWDxNpM5efLk6AaplFJD6OBzAqWlpTFlSnSpipkzZ8bUes/NzWXBguiaSjabjeXLl8fcNopXO14ppUbTmCQGEbGLyB4RialmJyL3ikiriOwNf903FjGNldtuu405c+aQmZnJsmXLuOGGG7juuutYsWJFZGzh9ttvZ8GCBdxwww0EAgH8fj+33XYbZWVl3H777ZSWlpKTk8M111zD0qUxO6UqpdSoGqtbSX8HHAayzvP4r40xXxqjWMZUXl4ed9xxR0z7TTfdFNNWVFSE3+/HGENubqjS6qxZs5g1a1bC41RKqbMSfsUgIuXAOuDhRP+siayhoYGnnnqK1NRUXC4Xjz32GH19fVaHpZRKQmNxK+l7wP8DBD/gnFtE5F0ReUZEpo5BTOPOgQMHGFy3yuPxcPToUQsjUkolq4QmBhG5CThljNn9Aae9AEw3xlwC/BF44jx9fV5EqkSkqrW1NQHRWisrK/YuW7w2pZRKtERfMVwB3CwiNcDTwLUi8tTgE4wx7cYYT/jwZ8CKeB0ZYx4yxlQaYyoLCwsTGbMlVqxYQWlpaeR48eLFMbOXlFJqLCQ0MRhj/sUYU26MmQ7cDmwxxtw1+BwRGbzDzM2EBqknvZ6eHvbv309zczMAqamp3HPPPfT29tLT08MnP/lJRARjDCdOnODQoUN4vV6Lo1ZKJQNLFriJyLeAKmPM88ADInIz4AdOA/daEdNYqq2t5amnnopUT73yyitZtWoVjzzyCOnp6QA88cQT3H333fz617+OjDVkZmbyuc99juzs7PP2rZRSH9aYJQZjzOvA6+Hv/21Q+78A/zJWcYwHb7zxRlRJ7bfffhtjDGfOnIm01dbWsm3btqgB6O7ubnbs2MHHP/7xMY1XKZVcdOWzBTweT9RxMBiMOzW1t7f3gs9VSqnRponBAitWRI+vz5kzh1WrVkWVv8jMzOSKK66ILHSDc2UylFIqkXTPZ4scPXqUI0eOUFhYyIoVK0hJSaGlpYXvfve7GGP413/9V7Kysujp6aGqqoq+vj6WLl1KWVmZ1aErpSYo3fN5nJs7dy5z586NHBtj2LdvHy6XC2MMR44c4bLLLiMjI4Orr77aukCVUklHrxgu0oMPPhi3LPbFcjqdZGZmRrV1dHTE7A/9YcyePZsHHnhg1PpTSk0sw71i0DGGceLsNp6D6U5tSikr6CfPRRrt37wPHDjAb3/726i2f/qnf6KgoGBUf45SSl2IJoZxYvHixbS1tbFr1y6cTidXX321JgWllCU0MYwjV199tQ40K6Usp2MMSimlomhiUEopFUUTg1JKqSiaGJRSSkXRxKCUUiqKJgallFJRNDEopZSKoolBKaVUFE0MSimlokzI6qoi0grUWh1HAhUAbVYHoS6avn8T12R/7yqMMYUXOmlCJobJTkSqhlMaV41P+v5NXPreheitJKWUUlE0MSillIqiiWF8esjqANSHou/fxKXvHTrGoJRSagi9YlBKKRVFE4PFROReESm1Og518UTkWyLysYt43tUi8mIiYkpWIlIqIs9cxPMeFpGFFzjnfhG5++Kjmzj0VpLFROR14B+NMVVWx6LOT0SE0L+X4Cj2eTWh9/6mYZ7vMMb4R+vnJxP9sxsZvWJIABFJF5Hfi8g+ETkgIn8lIitE5A0R2S0ifxCREhG5FagEfiEie0XELSLXicgeEdkvIo+KSGq4z2+LyCEReVdEvhNuWy8iO8Ln/1FEiq183ROBiPyXiHxx0PE3ROSrIvI1EdkV/vP9Zvix6SJyWER+BLwDTBWRx8Pv6X4R+YfweY+H30tE5DIR+XP4vd8pIpki4hKRx8LP2SMi18SJK09Engv//O0icsmg+B4SkVeBn4/BH9GE8QHv5YHw8b0islFEXgBeFRGbiPxIRA6KyIsi8tKg9+11EakMf98jIv8Rfg+3n/13Fe7/H8Pfzw7/m9snIu+IyCwRyRCR18LH+0Vkw5j/oYwWY4x+jSvweEAAAAXmSURBVPIXcAvws0HH2cCfgcLw8V8Bj4a/fx2oDH/vAuqBueHjnwN/D+QB/397dx5iVRnGcfz7U8sMtxbbJsyisn0zLUnE0hZaoGjKoj36oyiCqH+CommhaNWyQiEwodAwi1yClApLaJkiKQ2TKIvMiEhaLa2e/nifi/femTtN2sw49vvAZd5zznvOuee+c8+7nHue8wmbe3hD8+8uVfOuAR7u6WPf1l/AscDSqumPgcspv0YRpbG0EBgPjAD+Ak7MvKOAJVXrVsrhaaAZ2BH4DBid8wdTnqt+MzAz5x0CfJllPQFYmPOnAXdk+hRgeaZbgPeBAT392W1rrwZlOR5YkdNXAl8Bu+Z0M/BylvFewHqgOZdVfw8DOCfTDwC3VZXFLZl+Bzgv0zsBO2dZD855uwOfVr6fve3VD+sKHwEPSbqfcpJZDxwBLCkjEvQF1rWz3kjg84hYndOzgOuBx4HfgKckLcptAuwLPCdpb8pJ6fOuOZztR0R8IGmPvK4zjFI2RwGnAR9ktoHAQZQT+BcR8XbO/ww4QNI0YBGwuG7zI4F1EdGa+/oRQNI4yomfiFgl6Qvg4Lp1x1EaFETEa5J2kzQkl82PiA1bf/TblwZl+WVdtiUR8X2mxwFzowwHfiPp9Qab3sjm79j7wKnVCyUNApoi4sV8H7/l/B2AeyWNpzQomoA9gW+24jB7hCuGLhARqyWNAs4E7gOWACsjYuw/rKoG2/tD0hhgInARcAOlVTkNeCQi5ud4dct/cwTbvecprce9gDmUnsF9ETGjOpOkEcAvlemIWC/paOB0SoV9IXB19SqU1ma9dsu1E3kq2/qlnWVW1JdlverPrjPlALApstkP/Enb82Sj7VxCqaBGRcQmSWsovYlex9cYukC2YH6NiGeAh4ATgGGSxubyHSQdntl/AgZlehUwQtKBOX0ZsFTSQGBIRLxMGVo6JpcPAdZm+oquPKbtzBxKBdtMObG8AlydnzOSmiTtUb+SpN2BPhExD7gdOK4uyypgH0mjM/8gSf2ANygnDSQdDAynDA1Wq84zAfiu0uOwDtWXZUeWAefntYY9KUN5/1qWy1eSzgWQ1F/SzpTv47dZKZwM7Lcl298WuMfQNY4EHpT0F7AJuA74A3gshwf6AVOBlZTx6emSNgBjgauAuXlCaQWmU64xvCRpJ0pr5abcT0vmXQu8DezfLUfXy0XEyhwOWBsR64B1kg4F3sqhvp+BSymtxWpNwExJlQbVrXXb3ShpMjBN0gBgAzAJeJJSxh9R/g+ujIjfc18VLbntD4FfcUXfKfVlmb28RuZRet0rgNWU6wQ/bOGuLwNmSLqL8h2/AHgWWCDpPWA5paHQK/nnqmb2vyFpYET8LGk34F3gpIjoddcAupp7DGb2f7JQ0lDKjzXudqXQPvcYzMyshi8+m5lZDVcMZmZWwxWDmZnVcMVg1sUyJs/Qnn4fZp3li89mZlbDPQYzGkbEXZMRPN/N14GZd5ikeSrRWFslnZTzB2pzFNUPJZ2f89fkXdNIujS3tVzSDEl989UmaqtZT/F9DGbFGcDXEXEWQN6hfj/wY0SMUXlAy1TgbOBRYEpELJM0nBJS41BKmIwfIuLI3MYu1TvIu6snU26q2qQSzvsSyh3wTRFxRObzsJP1KFcMZkVNRNyIeDNDVszO5bOBKZmeBBxWFdJicIZlmESJ2wOUoHt1+5hICd3dmusOAL4FFtBx1FazbuWKwYy2EXFVHowDtdFSK+k+wNj6UNgqZ/uOLtoJmBURt7ZZ0HHUVrNu5WsMZrQbEbcSOXVy1d+3Mr2YEvq8su4xDebXDCUBrwLNlcitKk9t268TUVvNupV7DGZFexFxnwf6S3qH0oi6OPPeCDyRkVArYbWvBe7J+SsokVnvBF6o7CAiPpZ0G/mYydzP9ZQorA2jtpp1N/9c1ayBfNDK8RHxXU+/F7Pu5KEkMzOr4R6DmZnVcI/BzMxquGIwM7MarhjMzKyGKwYzM6vhisHMzGq4YjAzsxp/A+UBjrmje+oxAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 可以在箱线图上添加每种类别的散点分布情况\n",
    "# Usual boxplot 正常绘图\n",
    "ax = sns.boxplot(x='species', y='sepal_length', data=df)\n",
    "# Add jitter with the swarmplot function 添加散点分布\n",
    "ax = sns.swarmplot(x='species', y='sepal_length', data=df, color=\"grey\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 7. 显示各类的样本数 Show number of observation on boxplot"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 显示每个组的观察次数可能很有用\n",
    "\n",
    "# 基础的箱形图\n",
    "ax = sns.boxplot(x=\"species\", y=\"sepal_length\", data=df)\n",
    " \n",
    "# Calculate number of obs per group & median to position labels \n",
    "# 计算各个种类的中位数\n",
    "medians = df.groupby(['species'])['sepal_length'].median().values\n",
    "# 统计各个种类的样本数\n",
    "nobs = df['species'].value_counts().values\n",
    "nobs = [str(x) for x in nobs.tolist()]\n",
    "nobs = [\"n: \" + i for i in nobs]\n",
    " \n",
    "# Add it to the plot \n",
    "pos = range(len(nobs))\n",
    "for tick,label in zip(pos,ax.get_xticklabels()):\n",
    "    ax.text(pos[tick], medians[tick] + 0.03, nobs[tick], horizontalalignment='center', size='x-small', color='w', weight='semibold')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 8. 箱形图隐藏的数据处理 Hidden data under boxplot\n",
    "+ 添加分布散点图 boxplot with jitter\n",
    "+ 使用小提琴图 use violinplot"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "箱形图总结了几个组的数值变量的分布。但是箱形图的问题不仅是丢失信息，这可能会结果有偏差。如果我们考虑下面的箱形图，很容易得出结论，'C'组的价值高于其他组。但是，我们无法看到每个组中点的基本分布是什么，也没有观察每个组的观察次数。所以我们需要对隐藏的数据进行处理"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYQAAAEKCAYAAAASByJ7AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAFZ1JREFUeJzt3X+Q3Hd93/HnW+KwRQQV1p2N48OIciLBdYmcXjxunZkYU6k+SmrceqahHXLTeFCGAQvXSTueTDvIk0yHZmronNuBUbCHI5PgMFDGwqMDCRfjkDAJZ1lRbEy4w5HpgWzdCQwWls3JeveP/QrO4s5aab+7n93b52PmZn/c7ndfLGe99vP9fvfzicxEkqQ1pQNIkrqDhSBJAiwESVLFQpAkARaCJKliIUiSAAtBklSxECRJgIUgSaq8rHSAszE4OJibNm0qHUOSespDDz20kJlDZ3pcTxXCpk2bmJ6eLh1DknpKRDzRzOPcZSRJAiwESVLFQpAkARaCJKliIUiSAAtBklSxECRJQI99D0HqVxMTE8zOzra0jbm5OQCGh4db2s7IyAg7duxoaRvqThaC1CeOHz9eOoK6XNsLISLOBx4Ezqte79OZ+YGIeD1wD3ABsB94V2b+uN15pF5UxyfyU9uYmJhoeVtanTpxDOF54NrM/CVgC3BdRFwF/Hfgw5m5Gfg+cFMHskiSVtD2QsiGY9XNgeongWuBT1f3TwLvaHcWSdLKOnKWUUSsjYgDwBFgH/At4OnMPFE9ZA64ZIXnbo+I6YiYnp+f70RcSepLHSmEzHwhM7cAw8CVwJuWe9gKz92VmaOZOTo0dMbZWyVJ56ij30PIzKeBB4CrgA0Rceqg9jDw3U5mkSS9WNsLISKGImJDdX0d8M+Bx4AvATdWDxsH7m13FknSyjrxPYSLgcmIWEujgD6VmfdFxNeBeyLiD4CHgbs6kEWStIK2F0JmHgSuWOb+x2kcT5AkdQHnMpIkARaCJKniXEZSB9QxOV2rZmZmgHqmwWiVE+R1JwtB6oDZ2VkefvRh2FAwxMnGxcPfebhgCODpsi+vlVkIUqdsgJPXnCydorg1D7inulv5/4wkCbAQJEkVC0GSBFgIkqSKhSBJAiwESVLFQpAkARaCJKliIUiSAAtBklRx6gqpA+bm5uAHTtsAwNMwl3OlU2gZ/nXWbGFhgZtvvpmjR4+WjiJJZ8URQs0mJyc5ePAgk5OT3HrrraXjqEsMDw8zH/NObkdjlDR8yXDpGFqGI4QaLSwsMDU1RWYyNTXlKEFST2l7IUTEayPiSxHxWEQ8GhHvr+7fGRHfiYgD1c/b2p2l3SYnJ8lMAE6ePMnk5GThRJLUvE6MEE4Av5OZbwKuAt4bEZdVv/twZm6pfvZ0IEtb7du3j8XFRQAWFxfZu3dv4USS1Ly2F0JmHs7M/dX1Z4DHgEva/bolbN26lYGBAQAGBgbYtm1b4USS1LyOHlSOiE3AFcBfAVcD74uI3wSmaYwivt/JPHUbHx9namoKgDVr1jA+Pl44kbrK04VPOz1WXa4vFwFoLKG5Kj8S9r6OFUJErAc+A9ySmT+MiI8Avw9kdXkH8FvLPG87sB3g0ksv7VTcczI4OMjY2Bi7d+9mbGyMjRs3lo6kLjEyMlI6AjMzMwBsvmRz2SCXdMf7oZ8Vpw6CtvVFIgaA+4AvZOaHlvn9JuC+zLz8pbYzOjqa09PTbclYl4WFBW6//XZ27txpIair7NixA4CJiYnCSdRpEfFQZo6e6XFtHyFERAB3AY8tLYOIuDgzD1c3bwAeaXeWThgcHOTOO+8sHUOSzlondmheDbwLuPa0U0z/MCL+NiIOAm8B/mMHsrSd31SW1KvaPkLIzK8Ascyvev400+X4TWVJvcpvKtfIbypL6mUWQo38prKkXmYh1MhvKkvqZRZCjfymsqRe5vTXS0xMTDA7O3vOz19cXPzJCOHEiRPMzMz85NzvszUyMnLOz5Wkc+EIoUYDAwO87GWNjr3gggt+MlqQpF7gCGGJOj6Rv+c97+HQoUN87GMf85vKknqKI4SaDQwMsHnzZstAUs+xECRJgIUgSapYCJIkwIPKaqNWT+MFmJubA2B4ePict+EpvFJzLAR1tePHj5eO0BXqKNdTC+S0Wo4W7OplIaht6vhHw0Vd6rNu3brSEdTlLASpB/iJXJ3gQWVJEmAhSJIqFoIkCbAQJEmVthdCRLw2Ir4UEY9FxKMR8f7q/gsiYl9EzFSXr253FknSyjoxQjgB/E5mvgm4CnhvRFwG3Abcn5mbgfur25KkQtpeCJl5ODP3V9efAR4DLgGuB04tOjwJvKPdWSRJK+voMYSI2ARcAfwVcFFmHoZGaQAXdjKL1G8WFha4+eabOXr0aOko6lIdK4SIWA98BrglM394Fs/bHhHTETE9Pz/fvoDSKjc5OcnBgweZnJw884PVlzpSCBExQKMM/iQz/09191MRcXH1+4uBI8s9NzN3ZeZoZo4ODQ11Iq606iwsLDA1NUVmMjU15ShBy+rEWUYB3AU8lpkfWvKr3cB4dX0cuLfdWaR+NTk5SWYCcPLkSUcJWlYnRghXA+8Cro2IA9XP24APAlsjYgbYWt2W1Ab79u1jcXERgMXFRfbu3Vs4kbpR2ye3y8yvALHCr9/a7teXBFu3bmXPnj0sLi4yMDDAtm3bSkdSF/KbylIfGB8fp7H3FtasWcP4+PgZnqF+ZCFIfWBwcJCxsTEigrGxMTZu3Fg6krqQ6yFIfWJ8fJxDhw45OtCKLASpTwwODnLnnXeWjqEu5i4jSRLgCEErqGNR9zrUtTB8q1xYXv3AQtCyZmdn+eYj+7l0/QtFc7x8sTGIfe7Q14pl+PaxtcVeW+okC0ErunT9C/yX0WOlYxT3B9PrS0eoxcLCArfffjs7d+70LCMty2MIUp9wcjudiYUg9QEnt1MzLASpDzi5nZphIUh9wMnt1AwLQeoDW7duZWBgAMDJ7bQiC0HqA05up2ZYCFIfcHI7NcPvIUh9wsntdCYWgtQnnNxOZ+IuI0kSYCFIkipt32UUEXcDbweOZObl1X07gXcD89XDfi8z97Q7i5o3NzfHj55Zu2rm8WnFE8+s5efm5krHkNquEyOEjwPXLXP/hzNzS/VjGUhSYW0fIWTmgxGxqd2vo3oNDw/z3InDznZKY7bT84eHS8eQ2u6MI4SIuCgi7oqIqer2ZRFxUw2v/b6IOBgRd0fEq2vYniSpBc3sMvo48AXg56vb3wRuafF1PwK8AdgCHAbuWOmBEbE9IqYjYnp+fn6lh0mSWtRMIQxm5qeAkwCZeQJoaRmtzHwqM1/IzJPAHwFXvsRjd2XmaGaODg0NtfKykqSX0Ewh/CgiNgIJEBFXAT9o5UUj4uIlN28AHmlle5Kk1jVzUPlWYDfwhoj4C2AIuLHZF4iITwLXAIMRMQd8ALgmIrbQKJlDwG+fXWxJUt3OWAiZuT8ifg34BSCAv8vMxWZfIDPfuczddzUfUZLUCWcshIj4zdPu+uWIIDM/0aZMkqQCmtll9CtLrp8PvBXYD1gIkrSKNLPL6OaltyPiHwB/3LZEkqQizmXqimeBzXUHkSSV1cwxhM9RnXJKo0AuAz7VzlDnYmJigtnZ2dIxmJmZAWDHjh1Fc4yMjBTPIKm3NHMM4X8suX4CeCIzu27qx9nZWR7+269z8hUXFM0RP25050PferJYhjXPfq+W7Xz7WPnZTp96tjGIvegVJ4tl+Paxtbyx2KtLndPMMYQvdyJIHU6+4gKeu+ztpWMUd/7X72t5GyMjIzUkad2PqxHX+ZvK7aV8I93zfkjttGIhRMQz/HRX0Yt+BWRmvqptqVRct+xuOpVjYmKicBJp9VuxEDLzlZ0MIkkqq+n1ECLiQhrfQwAgM7/dlkSSpCKaWQ/hX0XEDPD3wJdpzD001eZckqQOa2aE8PvAVcAXM/OKiHgLsNz8RJLUE+o4TX2uWmd7uMXV9LrpFPFmvpi2mJlHgTURsSYzv0RjYRtJ6lvHjx/n+PHjpWPUqpkRwtMRsR74c+BPIuIIje8jSFJPquMT+Wo8A66ZEcKDwAbg/cDngW8Bv97OUJKkzmumEILGmsoPAOuBP6t2IUmSVpEzFkJm3p6Z/wh4L/DzwJcj4ottTyZJ6qizme30CPAkcBS4sD1xJEmlNPM9hPdExAPA/cAg8O7MfHO7g0mSOquZs4xeB9ySmQfaHUaSVE4zxxBua6UMIuLuiDgSEY8sue+CiNgXETPV5avPdfuSpHqcy4ppZ+vjwHWn3XcbcH9mbqaxK+q2DuSQJL2EthdCZj4InL5iy/XAZHV9EnhHu3NIkl5aJ0YIy7koMw8DVJcrnrUUEdsjYjoipufn5zsWUJL6TdPTX5eSmbuAXQCjo6PLLdgDNCaaWvPsD2pZLazXrXn2KHNzzi4i6eyUGiE8FREXA1SXRwrlkCRVSo0QdgPjwAery3tb3eDw8DBPPf8y11Smsaby8PBrSseQ1GPaPkKIiE8CXwV+ISLmIuImGkWwtVp4Z2t1W5JUUNtHCJm50mI6b233a0uSmtf1B5XVu+pYlWpmZgZobf76blqRSq2r4++qDnX8bdahzr9vC0Fdbd26daUjqMvMzs7yjQMHKH2U7NT+9qcPlJvV58mat2chqG1Kf3LS6vUa4CaidIzi7mLFM/HPSanTTiVJXcZCkCQBFoIkqWIhSJIAC0GSVLEQJEmAhSBJqlgIkiTAQpAkVSwESRLg1BWSeszc3BzPUP+0Db3oMHBsbq627a2qQljz7PeKL6EZz/0QgDz/VcUyrHn2e1B86i9JvWbVFMLIyEjpCADMzDwDwOY3lPwH+TVd835IdRseHubphQUnt6MxStowPFzb9lZNIXTLzJqnckxMTBROIklnx4PKkiTAQpAkVYruMoqIQ8AzwAvAicwcLZlHkvpZNxxDeEtmLpQOIUn9zl1GkiSgfCEksDciHoqI7YWzSFJfK73L6OrM/G5EXAjsi4hvZOaDSx9QFcV2gEsvvbRERknqC0VHCJn53eryCPBZ4MplHrMrM0czc3RoaKjTESWpbxQrhIj4uYh45anrwDbgkVJ5JKnfldxldBHw2Yg4leNPM/PzBfNIUl8rVgiZ+TjwS6VeX5L0YqXPMpIkdQkLQZIEWAiSpErp7yFI0ll7kvIrph2tLjcWzPAksKHG7VkIknpKtyz+ND8zA8CGzZuLZdhAve+HhSCpp7gYVvt4DEGSBFgIkqSKhSBJAiwESVLFQpAkARaCJKliIUiSAAtBklSxECRJgIUgSao4dYWkvjMxMcHs7GxL25ip5jJqdSqNkZGRrpmOw0KQpHOwbt260hFqZyFI6jvd8om82xQ9hhAR10XE30XEbETcVjKLJPW7YoUQEWuB/w2MAZcB74yIy0rlkaR+V3KEcCUwm5mPZ+aPgXuA6wvmkaS+VrIQLgH+35Lbc9V9kqQCShZCLHPfzyySGhHbI2I6Iqbn5+c7EEuS+lPJQpgDXrvk9jDw3dMflJm7MnM0M0eHhoY6Fk6S+k3JQvgasDkiXh8RLwd+A9hdMI8k9bVi30PIzBMR8T7gC8Ba4O7MfLRUHknqd0W/mJaZe4A9JTNIkhqc3E6SBFgIkqSKhSBJAiwESVLFQpAkARaCJKliIUiSAAtBklSxECRJgIUgSapYCJIkwEKQJFUsBEkSYCFIkipFp7/uNhMTE8zOzra0jZmZGQB27NjR0nZGRkZa3oYknQ1HCDU777zzeP7551lcXCwdRZLOiiOEJer4RH7HHXewe/duNm/ezK233lpDKknqDEcINVpYWGBqaorMZGpqiqNHj5aOJElNsxBqNDk5SWYCcPLkSSYnJwsnkqTmFSmEiNgZEd+JiAPVz9tK5Kjbvn37fnLsYHFxkb179xZOJEnNKzlC+HBmbql+9hTMUZutW7cyMDAAwMDAANu2bSucSJKa5y6jGo2PjxMRAKxZs4bx8fHCiSSpeSUL4X0RcTAi7o6IVxfMUZvBwUHGxsaICMbGxti4cWPpSJLUtLYVQkR8MSIeWebneuAjwBuALcBh4I6X2M72iJiOiOn5+fl2xa3N+Pg4b37zmx0dSOo5ceqsmGIBIjYB92Xm5Wd67OjoaE5PT7c9kyStJhHxUGaOnulxpc4yunjJzRuAR0rkkCT9VKlvKv9hRGwBEjgE/HahHJKkSpFCyMx3lXhdSdLKPO1UkgR0wUHlsxER88ATpXM0YRBYKB1iFfH9rI/vZb165f18XWYOnelBPVUIvSIipps5oq/m+H7Wx/eyXqvt/XSXkSQJsBAkSRULoT12lQ6wyvh+1sf3sl6r6v30GIIkCXCEIEmqWAg1iogbIiIj4hdLZ+l1EfFCtXjS30TE/oj4Z6Uz9bKIeE1E3BMR34qIr0fEnoh4Y+lcvWjJ3+aj1d/nrRGxKv4tdZdRjSLiU8DFwP2ZubNwnJ4WEccyc311/V8Av5eZv1Y4Vk+KxiIdfwlMZuZHq/u2AK/MzD8vGq4Hnfa3eSHwp8BfZOYHyiZr3apotW4QEeuBq4GbgN8oHGe1eRXw/dIhethbgMVTZQCQmQcsg9Zl5hFgO431XaJ0nlaVmtxuNXoH8PnM/GZEfC8ifjkz95cO1cPWRcQB4Hwao65rC+fpZZcDD5UOsVpl5uPVLqMLgadK52mFI4T6vBO4p7p+T3Vb5+54td72LwLXAZ9YDZ/AtGqtir9NRwg1iIiNND7BXh4RCawFMiL+c3qQpmWZ+dWIGASGgCOl8/SgR4EbS4dYrSLiHwIvsAr+Nh0h1ONG4BOZ+brM3JSZrwX+HvjVwrlWheqsrbXA0dJZetT/Bc6LiHefuiMifiUiPEjfoogYAj4K/K/V8OHPEUI93gl88LT7PgP8O8ADd+fm1DEEaAzHxzPzhZKBelVmZkTcAPzPiLgNeI7GwlS3FA3Wu079bQ4AJ4A/Bj5UNlI9PO1UkgS4y0iSVLEQJEmAhSBJqlgIkiTAQpAkVSwESRJgIUhnLSL8/o5WJQtBOk1E/NeI+EZE7IuIT0bE70bEAxHx3yLiy8D7I+J1EXF/RBysLi+tnvvxiLhxybaOVZfXRMSDEfHZaj2Cj66WOfS1evhJR1oiIkaBfwNcQeO/j/38dKbQDafWZIiIz9GYrmQyIn4LmKAx4+1LuRK4DHgC+Dzwr4FP1/4/QjpHfkKRXuxXgXsz83hmPgN8bsnv/mzJ9X9KY2EUaExd0My8VX+dmY9XU3B8ssnnSB1jIUgv9lLTGP/oJX53ag6YE1T/XVXTdb98mcesdFsqykKQXuwrwK9HxPnVKnj/coXH/SU/XRnv31fPg8akcf+kun49jQnQTrkyIl5fHTv4t0ueI3UFjyFIS2Tm1yJiN/A3NPb1TwM/WOahO4C7I+I/AfPAf6ju/yPg3oj4a+B+Xjyq+CqNWXH/MfAg8Nm2/I+QzpGznUqniYj1mXksIl5B4x/u7a0uhxoR1wC/m5lvryOj1A6OEKSftSsiLqOxnvOka2OrXzhCkCQBHlSWJFUsBEkSYCFIkioWgiQJsBAkSRULQZIEwP8Hv2k/K1PvZQoAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# libraries and data\n",
    "import pandas as pd\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "# Dataset:\n",
    "a = pd.DataFrame({ 'group' : np.repeat('A',500), 'value': np.random.normal(10, 5, 500) })\n",
    "b = pd.DataFrame({ 'group' : np.repeat('B',500), 'value': np.random.normal(13, 1.2, 500) })\n",
    "c = pd.DataFrame({ 'group' : np.repeat('B',500), 'value': np.random.normal(18, 1.2, 500) })\n",
    "d = pd.DataFrame({ 'group' : np.repeat('C',20), 'value': np.random.normal(25, 4, 20) })\n",
    "e = pd.DataFrame({ 'group' : np.repeat('D',100), 'value': np.random.uniform(12, size=100) })\n",
    "df=a.append(b).append(c).append(d).append(e)\n",
    " \n",
    "# Usual boxplot\n",
    "sns.boxplot(x='group', y='value', data=df);"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.0, 1.0, 'Boxplot with jitter')"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 添加分布散点图 boxplot with jitter\n",
    "ax = sns.boxplot(x='group', y='value', data=df)\n",
    "# 通过stripplot添加分布散点图，jitter设置数据间距\n",
    "ax = sns.stripplot(x='group', y='value', data=df, color=\"orange\", jitter=0.2, size=2.5)\n",
    "plt.title(\"Boxplot with jitter\", loc=\"left\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\scipy\\stats\\stats.py:1713: FutureWarning: Using a non-tuple sequence for multidimensional indexing is deprecated; use `arr[tuple(seq)]` instead of `arr[seq]`. In the future this will be interpreted as an array index, `arr[np.array(seq)]`, which will result either in an error or a different result.\n",
      "  return np.add.reduce(sorted[indexer] * weights, axis=axis) / sumval\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "Text(0.0, 1.0, 'Violin plot')"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 使用小提琴图 use violinplot\n",
    "sns.violinplot( x='group', y='value', data=df)\n",
    "plt.title(\"Violin plot\", loc=\"left\")"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
